我有一个嵌入式文档,其中包含一系列贡献者。贡献者是一系列为文档做出贡献的用户ID。
field :contributors, type: Array, :default => []
以下是控制台中的示例项目:
#<Item _id: 5249d5bd06387b91a600000f, name: "Collapse", contributors: ["51db6d58bd02861e96000004", "51db6d58bd02861e96000004"], count: 2>
我希望能够从数组中删除项目中第一个匹配的贡献者,但每次我尝试测试只是为了查看用户的id是否存在于contributors数组中时,它会在显然存在时返回false。
以下是一个例子:
contributors.include?("51db6d58bd02861e96000004")
=> false
如何使用Mongoid的数组值?为什么这会返回假?
答案 0 :(得分:2)
contributor是一个字符串数组还是ObjectIds?
尝试改为:
contributors.include?( Moped::BSON::ObjectId.from_string "51db6d58bd02861e96000004")
我真的不知道你的整个申请。但你考虑过这种方法吗?
class Item
has_and_belongs_to_many :users, foreign_key: :contributors
end