你可以强制ActiveRecord找到包含nil时找不到相关记录

时间:2013-08-27 15:27:52

标签: ruby-on-rails activerecord

有没有办法强制:在ActiveRecord中包含find,在不符合条件的结果中输出nil?

例如,如果我有课程:父母和孩子。父母有很多孩子,我这样做:

children_ids = [1,2,3]
my_parent = Parent.find(:all,
                        :include => :children,
                        :conditions => ['parent.id = 1 AND children.id IN (?)', children_ids])

假设我只有id为2和3的孩子:

my_parent.children

将返回带有两个孩子的数组。但我想知道他们是哪一个(我的children_ids数组中的第二和第三)。那么有可能:include为我丢失的孩子输入nil吗?

如果这个描述过于令人困惑,请告诉我,我会尝试更好地展示它。

1 个答案:

答案 0 :(得分:1)

如果你想找出丢失的记录,可以通过处理检索到的记录在rubyland中进行。

retrieved_ids = my_parent.children.map(&:id)
unretrieved_ids = children_ids - retrieved_ids