0
只是想出來Mongoid的那一刻,我碰到這可能很簡單,但有我在虧損的問題:在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視圖中,第一篇文章仍然返回其對象標識而不是新鍵。即使用link_to article.name, article
回報:
<a href="/articles/4ef150970a68b38415000003">Show</a>
...當所有的休息返回參數鍵,如:
<a href="/articles/other-article">Show</a>
如果我點擊鏈接我得到「沒有找到記錄」。我試着在控制檯中加載並保存這條記錄,然後在該記錄上調用article.id
確實返回了參數化的鍵,但它仍然在視圖中顯示舊的方式,並且不起作用。
所以,一對夫婦的問題:
- 這是怎麼回事嗎?
- 你如何解決它?
- 這種情況表明,如果你在一個mongoid模型上設置一個字段爲關鍵字,那麼你需要確定真的是,它肯定不會改變。你如何處理像使用文章的標題作爲一個slu,,然後,當這些可能偶爾需要改變?
謝謝!
那麼,你將如何在Mongoid中設置「slugs」,這樣你就可以擁有人性化的URL,但是如果有人需要更改邏輯上屬於URL的一個字段(因此也是關鍵字) ? – Andrew 2011-12-21 04:58:50
@Andrew我個人會離開'_id',並且可以通過'slug'字段(它將具有唯一的索引)來查找文章。 – 2011-12-21 05:06:48