根据具有ActiveRecord中的连接的孙属性选择对象(Select objects based on grandchild attribute with joins in ActiveRecord)
假设我有以下型号:
class Foo < ActiveRecord::Base has_many :bars has_many :bazs, :through => :bars class Bar < ActiveRecord::Base belongs_to :foo has_many :bazs class Baz < ActiveRecord::Base belongs_to :bar假设Baz具有“名称”属性。 选择所有Foo的最佳方式是什么,Baz的名字是“x”?
我曾经以为我可以做一些像Foo.join(:baz).where('bazs.name' => 'x')但这似乎不起作用。
Suppose I have the following Models:
class Foo < ActiveRecord::Base has_many :bars has_many :bazs, :through => :bars class Bar < ActiveRecord::Base belongs_to :foo has_many :bazs class Baz < ActiveRecord::Base belongs_to :barSuppose Baz has a "name" attribute. What is the best way for me to select all Foo where Baz has the name "x"?
I had thought I could do something like Foo.join(:baz).where('bazs.name' => 'x') but this doesn't seem to work.
最满意答案
这应该是有效的!
Foo.joins(:bazs).where(bazs: {name: 'x'})This should be work!
Foo.joins(:bazs).where(bazs: {name: 'x'})更多推荐
发布评论