以下のようなテーブル、モデル構成があったとします
class Foo < ActiveRecord::Base has_many :bars end class Bar < ActiveRecord:Base belongs_to :foo has_many :bazs end class Baz < ActiveRecord:Base belogs_to :bar has_many :hoges end class Hoge < ActiveRecord:Base belogs_to :baz end
調べてみたところFooテーブルから曾孫テーブルにあたるHogeテーブルを参照するには
Foo.joins({:bars => {:bazs => :hoges}})
のようにjoin(inner join)メソッドを用いて参照ができると調べた結果出てきました。
これ以外の参照方法は調べられなかったです。
しかしリレーションのあるテーブルを参照するには、
preload
やeager_load
、include
等のメソッドがActiveRecordでは使えると思います。
ともすると、Foo.all.includes(:bars).includes(:bazs).includes(:hoges)
みたいな形でメソッドチェーンして参照できるのではないかと考えました。
rails、Activerecordを実行できる環境が諸事情により手元にないので試してはいません。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/26 02:16