【问题标题】:can you force ActiveRecord find to include nil when associated record not found找不到关联记录时,您能否强制 ActiveRecord 查找包含 nil
【发布时间】:2013-08-27 23:30:52
【问题描述】:

有没有办法强制 :include in 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 ?

如果这个描述太令人困惑,那么请告诉我,我会尝试更好地呈现它。

【问题讨论】:

    标签: ruby-on-rails activerecord


    【解决方案1】:

    如果您想找出丢失的记录,可以在 ruby​​land 中通过处理检索到的记录来完成。

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

    【讨论】:

    • 这不是我希望的解决方案,但它可以帮助我继续前进,所以谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多