が、私はおそらく非常に単純ですが、ロスで私を持って問題に遭遇しました:モンゴイドのキーを再生成しますか?ただ、現時点ではMongoidを試し
私は本当に簡単Articleモデルを持っている:
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
を追加しました私はすでに1つのテスト記録を作成した後です。新しく作成されたレコードは期待どおりに動作しますが、最初の記事(最初は正常なモンゴイドオブジェクトIDを持っていました)は奇妙な動作をします:
この最初の記事では、新しいキーではなくオブジェクトIDが返されます。すべての残りの部分がパラメータ化キーを返すときのように、...
<a href="/articles/4ef150970a68b38415000003">Show</a>
::私は「見つからない記録」を得るというリンクをクリックした場合
<a href="/articles/other-article">Show</a>
すなわちlink_to article.name, article
リターンを使用。このレコードをコンソールにロードして再保存しようとしましたが、そのレコードのarticle.id
を呼び出すと、パラメータ化されたキーが返されましたが、それでもビューの古い方法が表示されて動作しません。だから、
、カップルの質問:
- ここで何が起こっていますか?
- どのように修正しますか?
- この状況では、モンゴイダルモデルのフィールドをキーに設定すると、という実際にはに変更されないことを確認する必要があります。記事のタイトルをスラッグとして使用するようなことをどうやって処理しますか?時には変更が必要な場合があります。
ありがとう!
それで、Mongoidで「スラッグ」を設定すると、人にやさしいURLを持つことができますが、論理的にURLの一部であるフィールド(つまりキー)を変更する必要がある場合は、 ? – Andrew
@Andrew私は個人的に '_id'だけを残し、' slug'フィールド(これはユニークなインデックスを持つでしょう)によっても記事を見つけることを可能にします。 –