我有两种模式:
class Parent < ActiveRecord::Base
has_many :children
end
class Child < ActiveRecord::Base
belongs_to :parent
end
我想找到所有父母和他们的孩子,只有孩子的条件。但如果父母没有符合该标准的孩子,我仍然想要父母。
我试过了:
Parent.all(:include => :children, :conditions => {'children.some_condition' => 'some_value'})
但是,这不会返回没有匹配孩子的父母。我想要所有父母,只有那些符合我条件的父母的孩子。
不幸的是我正在使用Rails 2.1.1。我想升级,但现在不是我的主要优先事项,所以请考虑可能实施的限制 编辑:抓住,刚升级到2.3.6,相当无痛
非常感谢任何帮助。
答案 0 :(得分:0)
我不确定它是否适用于Rails 2.1.1,但我认为应该。
您的条件适用于所有记录 - 也适用于没有任何子女的记录。所以你需要添加这样的附加条件:
Parent.all(:include => :children, :conditions => ["children.some_condition = ? OR children.id is null", "some_value"]