2011-06-28 9 views
1

モンゴイド文書に参照オブジェクトの配列があります。 current_user.add_to_set(:whatever, @object.id)を使用すると、BSON ObjectId要素を配列に追加し、current_userを保存しても問題ありません。モンゴイドpull_allメソッドが動作しません

ただし、pull_allで要素を削除しようとすると、機能しません。何も起こっていないようです:

current_user.pull_all(:whatever, BSON::ObjectId(@object.id)) 

私は間違っていると思いますか?

ありがとうございます!

答えて

2

あなたは配列にpull_allにしたい項目をラップする必要があり、私はこれに似た(Mongoid 2.0.2で)何かを実行し、それがうまく働いた:

current_user.add_to_set(:whatever, @object.id) # worked exactly as you said, added the id to the `whatever` array 
current_user.pull_all(:whatever, [@object.id]) # removed the id from the `whatever` array 

こうすることで、あなたも指定することができます1つの操作で削除する複数のID:

current_user.pull_all(:whatever, [@object1.id, @object2.id]) 
+0

ありがとうございました。また、私は誤ってどこかの「終わり」をやめてしまったことが分かりました。その結果、私の行動は別の行動に包摂されました。おっとっと。 – Avishai

関連する問題