2012-04-02 59 views
1

爲什麼使用has_many時無法多次推送記錄?爲什麼我不能在Mongoid中使用has_many來推送重複記錄?

class Template 
    include Mongoid::Document 

    has_and_belongs_to_many :widgets, inverse_of: nil 

嘗試添加重複:

(rdb:387) self.widgets.push(Widget.first) 
[BSON::ObjectId('4f7096776c51c8135000000d')] 

(rdb:387) self.widgets.push(Widget.first) 
[BSON::ObjectId('4f7096776c51c8135000000d')] 

(rdb:387) self.widgets.count 
1 
+0

你爲什麼要定義inverse_of:nil?如果沒有爲什麼使用hbtm? – shingara 2012-04-03 07:49:04

回答

0

Internaly,Mongoid用鑰匙$addToSet把你的新文檔相關聯。所以這個關鍵字避免了列表中元素的重複。因此,您不能將相同的文檔與has_and_belongs_to_many關聯多次。

如果需要此行爲,請執行拉取請求或功能請求。但我認爲這可以是一個選擇。

相關問題