的ActiveRecord找到包括,在条件包括不影响父

的ActiveRecord找到包括,在条件包括不影响父

问题描述:

我有两个型号:的ActiveRecord找到包括,在条件包括不影响父

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,是相当容易

任何帮助是极大的赞赏。

我不太确定它是否可以与Rails 2.1.1一起使用,但我认为它应该。

您的条件适用于所有记录 - 也适用于那些没有任何子女的记录。所以你需要添加这样的附加条件:

Parent.all(:include => :children, :conditions => ["children.some_condition = ? OR children.id is null", "some_value"] 
+0

刚刚升级了服务......它实际上很简单,测试都通过了......明天我会试试这个机会。 – brad 2010-09-21 21:50:38