MongoDB Mongoid 里面设为 Key 的不能随便改阿

paranoyang · 2012年01月01日 · 最后由 jojojo 回复于 2012年02月04日 · 2788 次阅读

在写一个用 Mongoid 的论坛程序,把帖子的 title 设成了 Post 的 key,如果允许用户修改标题的话,会各种悲剧阿,对象的 id 还是原来旧的 title 不会变,帖子的 url 也不会变,但是像是 Edit 页面修改完之后redirect_to @post的时候就会导向到这个新 title 生成的 url,由于 id 其实没有更改,所以自然找不到该 post,直接提示:

Mongoid::Errors::DocumentNotFound in PostsController#show

mongoid 这个 key 直接对应到 url 是很爽,不过用之前还是要三思阿。。。

这不是 Mongoid 的问题。在 MongoDB 中 key 是不能修改的,要改只能删掉旧 doc,插入一条一样的(除了 id)。

全部删除,重来不行么?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号