刚刚尝试了Mongoid,我遇到了一个可能非常简单的问题,但让我感到茫然:
我有一个非常简单的文章模型:
class Article
include Mongoid::Document
field :title, :type => String
field :content, :type => String
key :title
referenced_in :subject
validates_presence_of :title
end
在我创建了一条测试记录后,我添加了key :title
。新创建的记录按预期工作,但第一篇文章(最初具有正常的mongoid对象id)表现得很奇怪:
在rails视图中,第一篇文章仍然返回其对象ID而不是新键。即使用link_to article.name, article
返回:
<a href="/articles/4ef150970a68b38415000003">Show</a>
...当所有其余的都返回参数化键时,例如:
<a href="/articles/other-article">Show</a>
如果我点击该链接,我会收到“未找到记录”。我尝试在控制台中加载并重新保存此记录,然后在该记录上调用article.id
确实返回参数化密钥,但它仍然在视图中显示旧方法并且不起作用。
所以,有几个问题:
谢谢!
答案 0 :(得分:0)
好吧,因为_id
是不可变的,所以你唯一的选择就是用你的新“缓慢”id重新插入这个文件并删除旧文件。
是的,_id格式和分片键(如果你使用分片)是你从一开始就更好的两件事:-) 其他所有东西都可以相对容易地修复。