【ActiveRecord】3つ以上のテーブルをJOINしたいこの広告は、90日以上更新していないブログに表示しています。RoR状況3つ以上のテーブルをJOINしたい。想定するモデル記事、段落、文といったモデルを考えてみる。記事は複数の段落を含む。段落は複数の文を含む。以下のモデルがあるものとする。特定のsentenceが所属するarticleを取得する(孫から先祖へ)。特定のarticleに含まれるsentencesを取得する(先祖から孫へ)。})whereにはテーブル名につづけてハッシュでカラムと値を指定する。テーブル名を渡さないとエラーになる。)どのテーブルのidなのかがわからないからダメ。SQLなら上記コードから以下のクエリが生成される。?モデル名、単数/複数?複数形または単数形のどちらにするのかはモデルの関連付けに従う。B)の場合、Articleは複数のParagraphsをもつので、eager_loadの第一引数は複数形のparagraphsとする。同じように、paragraphsは複数のsentencesをもつので、第二引数も複数形のsentencesとする。JOINしたいたとえば記事の筆者も表示したくなったとする。そのためにauthorsモデルを追加でJOINしたい。このとき、任意の著者によるsentence、paragraph、articleは次のようにして取得できる。?})モデル名をハッシュでネストすればOK。:author})雑感Railsガイドに複数モデルの関連付けの方法が紹介されている。読んでもわからなかったので、色々ググって3つ以上のテーブルをつなぐ記法を調べる必要があった。Recordの記法がわからない場合、生SQLを食わすという手段もある。https://railsguides.jp/active_record_querying.html#sql%E3%81%A7%E6%A4%9C%E7%B4%A2%E3%81%99%E3%82%8Bfind_by_sqlに生クエリを渡して実行するやり方についてメモした。モデルにスコープをつける。Recordsで実行したい。指定範囲の期間でレコードを絞り込みたい。ユーザーのフォーム入力に従ってモデルの値を更新したい。東京第3回、ピザパーティのお題を解く【Ruby】MiniTestでテストを書いてみるハッシュレファレンスをsprintfでフォーマットしてprintする月別アーカイブはてなブログをはじめよう!masatozさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。