2013-09-30 67 views
0

我有一個嵌入式文檔,它有一個貢獻者數組。貢獻者是對文檔有貢獻的人的一組用戶標識。使用Mongoid和Rails從Mongo數組中刪除項目

field :contributors, type: Array, :default => [] 

下面是從控制檯的例子項目:

#<Item _id: 5249d5bd06387b91a600000f, name: "Collapse", contributors: ["51db6d58bd02861e96000004", "51db6d58bd02861e96000004"], count: 2> 

我希望能夠刪除第一個匹配的貢獻者從陣列中的項目,但每一次我嘗試和測試只是爲了看看如果用戶的ID存在於貢獻者數組中,則當它顯示在那裏時它將返回false。

下面是一個例子:

contributors.include?("51db6d58bd02861e96000004") 
=> false 

我如何從Mongoid數組值的工作嗎?爲什麼這會返回假?

回答

2

contributor是一個字符串或ObjectIds的數組?

嘗試,而不是:

contributors.include?(Moped::BSON::ObjectId.from_string "51db6d58bd02861e96000004")

我真的不知道你的整個應用程序。但你有沒有考慮過這種方法?

class Item 
has_and_belongs_to_many :users, foreign_key: :contributors 
end 
+0

是的,我需要添加Moped :: BSON :: ObjectId。謝謝你! – aressidi