0
這必須是一個簡單的答案,但我很困惑。我正在使用Mongo Mapper運行Sinatra應用程序,並試圖銷燬與rem_users數組中的用戶ID相關的一些文檔。以下循環爲rem_users的每個元素查找關聯的GroupMember,並嘗試刪除它。當我運行它時,GroupMember不會被銷燬。Mongo Mapper在循環期間不會破壞文檔
rem_users.each do |du_id|
###
GroupMember.first('$and' => [{dealer_user_id: du_id}, {group_id: g.id}]).destroy
end
rem_users是已轉換爲字符串的BSON ID的數組。我已驗證查詢正在使用此查詢提取正確的GroupMember,並且如果我在該示例中放置了一個binding.pry,並且複製粘貼了該循環的下一行,則GroupMember被成功銷燬。我試過了:
remgm = GroupMember.all('$and' => [{group_id: g.id}, {dealer_user_id: rem_users}])
remgm.each {|gm| GroupMember.destroy(gm.id)}
和結果是一樣的。 GroupMember模型上沒有任何類型的驗證。謝謝!
您可以使用'GroupMember.destroy_all(:dealer_user_id.in => rem_users,:group_id => g.id)'來簡化此操作,以便一次性完成所有操作。 –