2015-04-19 50 views
0

說我有一個Mongoid模型,如下:如何取消Mongoid中的關係?

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

我剛剛棄用我的集團模式(擺脫那個類的完全),現在我要來取消所有我的人車型的這層關係。

什麼是最合適的方式來做到這一點?我知道Mongoid提供了一種解除字段的方法(https://coderwall.com/p/wcx4pq/mongoid-remove-unnecessary-properties-from-documents),所以我想必須有辦法對關係做同樣的處理,以使Person不再有groupsgroup_ids

謝謝!

回答

1

你只需要取消設置group_ids每個人的對象是這樣的:

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

之後,你可以刪除組集合。

+0

嗯,這似乎沒有工作 - 我仍然可以訪問組和group_ids。你確定Mongoid對待:group_ids作爲一個字段,而不是別的嗎?謝謝! – ryzh

+0

是的。文件只有字段。您可以在取消設置並重新加載對象後訪問group_ids? – dx7

+0

啊,現在我明白了 - 我沒有重裝。是的,這個解決方案似乎有效。謝謝! – ryzh