【问题标题】:How do I unset a relation in Mongoid?如何在 Mongoid 中取消设置关系?
【发布时间】:2015-04-20 16:08:43
【问题描述】:

假设我有一个 Mongoid 模型,如下:

class Person
  # stuff here
  has_and_belongs_to_many :groups, :class_name => 'Group', :inverse_of => nil
end

我刚刚弃用了我的 Group 模型(完全摆脱了那个类),现在我想从我的所有 Person 模型中取消设置这种关系。

最合适的方法是什么?我知道 Mongoid 提供了一种取消设置字段的方法 (https://coderwall.com/p/wcx4pq/mongoid-remove-unnecessary-properties-from-documents),所以我想一定有一种方法可以对关系执行相同的操作,这样 Person 就不再有 groupsgroup_ids

谢谢!

【问题讨论】:

    标签: ruby mongoid


    【解决方案1】:

    您只需要为每个 person 对象取消设置 group_ids,如下所示:

    Person.each { |person| person.unset(:group_ids) }
    

    之后,您可以删除组集合。

    【讨论】:

    • 嗯,这似乎不起作用 - 我仍然可以访问组和 group_ids。您确定 Mongoid 将 :group_ids 视为一个字段,而不是其他内容吗?谢谢!
    • 是的。文档只有字段。您可以在取消设置后访问 group_ids 并重新加载对象吗?
    • 啊,现在我明白了 - 我没有重新加载。是的,这个解决方案似乎有效。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多