【发布时间】:2011-07-28 16:01:03
【问题描述】:
我正在使用 Sinatra 和 Mongoid 来访问 MongoDB。大部分都运行良好,除了当我尝试删除一个对象时,该对象被删除但似乎保留在数据库中。
u = User.find(user_id)
u.delete
这似乎有效并且不会产生错误,但是当我使用 Mongo 控制台检查数据库以确认这一点时,该对象仍然存在。用户对象不在上限集合中。
u = User.find(user_id)
u.delete
u = User.find(user_id)
此更改确实会产生错误,这意味着对象已成功删除。尽管如此,在 Mongo 控制台中,对 users 集合的 find() 调用仍会显示该对象。
【问题讨论】:
-
您的模型中有
include Mongoid:Paranoia吗?默认行为不应使用 deleted_at。见mongoid.org/docs/extras.html -
谢谢特德。你是正确的偏执狂在模型中,我需要使用“u.delete!”真正删除对象。
标签: ruby mongodb sinatra mongoid