Ruby on Rails

【Rails】gem bullet 導入(N+1クエリ問題を警告)

gem bulletとは N+1クエリ問題を警告してくれるgemです。 導入 # Gemfile gem 'bullet' # ターミナル bundle exec rails g bullet:install Would you like to enable bullet in test environment? (y/n) y もし問題があれば以下のようにlogに出力されます。 …

【Rails】N+1クエリ問題

N+1クエリ問題とは 最初に発行するクエリ1回+N回のクエリ発行により、 アプリケーションの処理速度が遅くなることがあります。 例えば、本の一覧を取得して、関連した著者名も一緒に表示させたい 場合があったとします。 booksテーブルからallメソッドで取…

【Rails】テーブル結合方法

テーブル結合とは 違うテーブルからそれぞれデータがほしいとき それらを結合して1つのテーブルからデータ取得することができます。 テーブル例 著者が1つ以上の書籍を出版している例を用いて以後説明していきます。 1. 内部結合(INNER JOIN) 基礎構文 モデ…

RailsでWeb APIを作成する

アプリ作成 1.ディレクトリ作成 rails new web_api_sample --api cd web_api_sample bin/rails s 2.http://localhost:3000へアクセスし、以下のように表示されることを確認 3.scaffoldコマンドを実行し、モデル、マイグレーション、ルーティング、コントロー…