【发布时间】:2011-12-21 03:51:30
【问题描述】:
目前只是在尝试 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 确实返回了参数化密钥,但它仍然在视图中显示旧方式并且不起作用。
所以,有几个问题:
- 这是怎么回事?
- 如何解决?
- 这种情况向我表明,如果您将 mongoid 模型上的字段设置为键,您需要真正确保它永远不会改变。您如何处理诸如使用文章标题之类的问题,然后,当这些可能偶尔需要更改时?
谢谢!
【问题讨论】:
标签: ruby-on-rails mongodb ruby-on-rails-3.1 mongoid