说我有三种型号:
class Foo < ActiveRecord::Base
has_many :things
end
class Thing < ActiveRecord::Base
belongs_to :foo
belongs_to :other_thing
end
class OtherThing
has_many :things
end
我如何从Foo
和急切加载OtherThing
开始:
Foo.includes([:things => [:other_things]})
我搜索过但找不到任何东西。
由于
答案 0 :(得分:5)
包含和连接使用与您定义的关系相同的语法:
Foo.includes(:things => :other_thing)
会工作,因为:
Foo has_many :things
^
Thing belongs_to :other_thing
^^
但请记住,在where子句中,始终使用复数版本:
Foo.includes(:things => :other_thing).where(other_things: { name: 'Bobby' })
^^ ^^