fv17の日記

Webエンジニアの備忘用ブログです。主にWeb界隈の技術に関して書いています。

2018-01-01から1年間の記事一覧

Git - コミット時のコメントの書き方について

Git

下記で話題になっているので参考。 Git公式でこう書けばGoodだよ的な記事はないのだろうか。qiita.comqiita.com

Ruby - 文字列操作に関するメソッド一覧

=~ todo match todo scan Stringのメソッド。 正規表現のパターンとマッチする部分を文字列からすべて取り出し、配列にして返す。 '123 456 789'.scan(/\d+/) # => ['123', '456', '789'] 参考 : scan (String) - Rubyリファレンス split Stringのメソッド。…

ゼロから学ぶ正規表現

文字列の検索や置換を行うための技術、ミニ言語的な立ち位置としての正規表現を学ぶ。アプリにおけるユーザーの入力制御、クローラーを使ったWebスクレイピングでの情報抽出、開発途中におけるテストデータの一括修正など、利用場面が多い。エンジニア1~3年…

RubyMine - No Ruby interpreter configured for the projectの解決方法

稀にエラーとなり、外部ライブラリが見えなくなる。 解決方法 RubyMineを閉じる .idea/ フォルダーを削除する 再度RubyMineで該当のプロジェクトを開く git管理している場合の .idea/ 削除方法 git statusでUntracked filesに .idea/と出てきたら下記コマン…

N+1問題とは

N+1問題とは、必要以上にSQLクエリが発行され、その結果、速度低下に繋がりユーザビリティが悪くなる問題のこと。 N+1問題とか名前しらなかっただけで当たり前。 具体的には? 下記の記事を参照。 ruby-rails.hatenadiary.comもしくは、Rails ガイドの「13 …

【パーシャル】:collectionオプションによる複数オブジェクトのレンダリング

パーシャルにオブジェクトの複数形を渡し、見やすいコードにする 基本の使い方 collectionオプションにより、コレクションのメンバごとにパーシャルをレンダリングする <%= render partial: "product", collection: @products %> 具体的な使い方 Before Refa…

Ruby - if文を一行にまとめる技

ある値がnilかどうかでif文を分岐させる場合、引数で || 記法が使えないかを検討する if文で分岐させる書き方 def redirect_back_to(default) if session[:forwarding_url].nil? redirect_to default else redirect_to session[:forwarding_url] session.del…

Ruby - 場所によって変わるselfの意味

参照:チェリー本 Class直下におけるself クラス クラスメソッドにおけるself クラス インスタンスメソッドにおけるself インスタンス

Rails - delegateはなぜ必要なのか

delegateの基本的な使い方 基本的な使い方は公式ドキュメントか、日本語の場合はググればいっぱい出てきます。 https://api.rubyonrails.org/classes/Module.html#method-i-delegate なぜ必要か? オブジェクト指向の「デメテルの法則」(最小知識の原則)に反…

RubyMineの設定すべき箇所

随時更新中 半角スペース、タブを可視化する 設定箇所 Preferences > Editor > General > Appearance Show whitespacesにチェックを入れる 設定理由 インデントのズレや行の末尾に不要な空白文字が入っている際にすぐ分かる。 インデントを空白2文字にする …

HerokuのWebサーバーをWEBrickからpumaに変更する

参照 devcenter.heroku.com config/puma.rb workers Integer(ENV['WEB_CONCURRENCY'] || 2) threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5) threads threads_count, threads_count preload_app! rackup DefaultRackup port ENV['PORT'] || 3000 en…

Herokuの本番環境でSSL

RailsをHerokuにデプロイした際に、SSLを強制させる設定 config/environments/production.rb Rails.application.configure do . . . # Force all access to the app over SSL, use Strict-Transport-Security, # and use secure cookies. config.force_ssl =…

古典的記事「Skinny Controller, Fat Model」を読む

こちらの記事 Buckblog: Skinny Controller, Fat Model この記事を読んで得られる知識、技術 Railsにおいて、どこに何を書くのか? 特にコントローラに何を書くか、モデルに何を書くか、の基礎となる指針 どんな記事か? 18 October 2006 と古い記事だが、Ra…

SCSSの書き方

基本的な書き方と、自身がハマったところ 基本的な書き方 公式 sass-lang.com日本語かもーんぬの場合はこちら ferret-plus.com 親を参照する場合 例えば、:hoverとかの場合 通常のCSS #logo { float: left; color: #fff; } #logo:hover { color: #fff; text-…

【link_to】imgタグにリンクを貼る方法

<%= link_to image_tag("sample.png", alt: "Sampleの写真"), root_path %>

Rails - タイトルタグの中身を動的に変更する

記事概要 各View毎にタイトルを変えたい場合の実装方法参考:rails tutorialの第3章、第4章 現状のコードと問題点 現状のコードだと、全てのページでタイトルが「Sample App」になってしまう。 application.html.erb <html> <head> <title>Sample App</title> </head> # ... </html> やりたいこと 下…

Rails - コントローラの作成

作成 rails g controller StaticPages home help about コントローラ名称はキャメルケース、複数形 コントローラ名の後にアクションの記述ができる ルーティングの設定やViewファイルが自動で追加される JS、CSS、テスト、ヘルパーなどのファイルが自動生成…

MVCとは何か、デメリット、メリットは?

MVCについて、定義は分かる。MVCがない場合、例えばViewからデータベースに直接アクセスし始めたら、どこで何をしているか誰も理解できないカオスなソースコードになるのは明らか。で、自分のその感覚が合っているのか、もう少し言語化して理解したいと思い…

【復習用】【各章まとめ】Everyday Rails - RSpecによるRailsテスト入門

第1章 イントロダクション https://forest-valley17.hatenablog.com/entry/2018/10/10/180159第2章 RailsにRSpecを導入する手順 https://forest-valley17.hatenablog.com/entry/2018/10/11/004138第3章 モデルスペック https://forest-valley17.hatenablog.c…

RSpecにおいて、テストの可読性を高める

everyday Rails 第8章 「テストの可読性を改善する(p146~)」を読んでおり、理解を深めたかったので下記で補完。下記の記事を読むことにより書籍の理解が深まったこと、またテストコード以外でも読みやすく記述する技に気づくことができたのでオススメ。 参照…

RSpec - Request Specにおいてsign_in / sign_outを実装する場合の設定

参照 Qiita記事とかで色々書かれていますが、公式docのWikiを参照 How To: sign in and out a user in Request type specs (specs tagged with type: :request) · plataformatec/devise Wiki · GitHub シンプルな実装 rails_helper.rbに下記の1行を追加する…

RSpecにおいて、FactoryBot.create(:xxx) の FactoryBot を省略する

毎回、下記のようにFactoryBotって書いているのが苦痛。everyday Rails にはこの書き方しか無かったから、こういうもんだと諦めていた。 let(:user) { FactoryBot.create(:user) } こう書きたい。 let(:user) { create(:user) } 解決方法 spec/rails_helper.…

Rubyの文字列結合において、 + ではなく 式展開#{} を使うべき理由

下記の記事で紹介されています。 techracho.bpsinc.jp

未経験からバックエンドエンジニアとして転職するのに時に作成したいポートフォリオについて

KENTAさんの動画から抽出 参照 www.youtube.com まとめ メディア系のWebアプリ開発がオススメ。下記の機能があれば良い。 記事一覧表示 記事詳細表示 記事投稿 管理ユーザー登録(認証系ライブラリの習得) 管理ユーザーログイン 画像ファイルのアップロード D…

【Rails】あるモデルがどんなカラムを持っているかを確認する方法

rails c して、そのモデルの column_names メソッドを呼ぶ。 User.column_names # => ["id", "name", "email"]

【RubyMine】No Rails found in SDK エラーでRailsを実行、およびデバッグ実行できないので解消した

RubyMineでデバッグしてみよう!と意気込んでみたものの、No Rails found in SDK (直訳:SDKの中にRailsが見つからないぜ?)で、できない... というわけで、解消しました。 まず試したこと 下記2つのQiita記事を参考にした。エラーの先輩たちに聞く。[RubyMi…

【2018年度版】フロント、バックエンド、DevOpsエンジニアで一流になるためのロードマップ(記事まとめ)

各分野のエンジニアを目指す場合、何を、どんな順番で学ぶべきかが明確になるため一読するのがオススメ。 フロントエンド qiita.com バックエンド qiita.com DevOps qiita.com 機械学習、データサイエンティスト 2018年2月版 tjo.hatenablog.com 2017年夏版 …

Rails - 名前付きルートにおける_pathと _urlの違いと使い分け

_pathは相対パスで、_urlは絶対パスである。 root_path -> '/' root_url -> 'http://www.example.com/' 使い分けとしては、 _path : 通常はこちらを使う。例えば、Viewにおける利用。 _url : redirect_toする場合のみ。主に、controllerにおいて用いられる。…

RailsにBootstrap3およびBootstrap4を導入する方法

gemを入れることですぐにできる。Bootstrap3か4を使うかで利用するgemが異なる。Bootstrap3:bootstrap-sass gem Bootstrap4:bootstrap gem Bootstrap3を導入する Gemfile gem 'bootstrap-sass', '~> 3.3.7' gem 'sass-rails', '>= 3.2' app/assets/stylesh…

RubyMine - ショートカット一覧

qiita.com