0
私は私のモデルでは、このルールを使用します。Railsの3 - ルーティングおよびパラメータ化名前
def to_param
"#{self.name.parameterize}"
end
、私のヘルパーに:
def articles_menu
menu = '<ul>'
Article.all.each do |article|
menu += '<li>'
menu += link_to "#{article.name}", article
menu += '</li>'
end
menu += '</ul>'
return menu.html_safe
end
が、私は/articles/my-new-flat
、I'LLに行きますよエラーを取得する
私はまだ他の何かが見つからないか、私のアプリに何か問題がありますか? Iかかわら名前のパラメータ化が唯一のモデルでルールを設定する必要があるため...
** FriendlyId **を使用せずに行う方法もあります。私はこの宝石について知っていますが、私はDB構造に干渉するのが好きではないでしょう... – user984621
どうにかして、あなたはどのようにレールのルーティングが動作し、 ':id'の経路パラメータを変更する必要があります。 FriendlyIdのソースコードをチェックすることができます。 2つのファイル、https://github.com/norman/friendly_id/blob/master/lib/friendly_id/finder_methods.rbとhttps://github.com/norman/friendly_id/blob/master/lib/をチェックします。 friendly_id/finder_methods.rb。 2番目は実際の拡張機能であり、ActiveRecord :: Baseを拡張する必要があります。 –
もう1つ、そのメソッドの元の実装にも注意が必要です。したがって、モデルの実際のIDに応答するように注意してください。 'Article.find_on(1234)'と 'Article.find_one(" article-name-or-title ")でテストするだけです。 –