为什么我不能在Mongoid中使用has_many推送重复记录?

时间:2012-04-02 19:45:07

标签: 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

1 个答案:

答案 0 :(得分:0)

Internaly,Mongoid使用密钥$addToSet将您的新文档关联起来。所以这个关键字避免了列表中元素的重复。因此,您无法与has_and_belongs_to_many多次使用相同的文档。

如果您需要此行为,请执行拉取请求或功能请求。但我认为可以选择允许这样做。