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
,我會得到錯誤
ActiveRecord::RecordNotFound in ArticlesController#show
Couldn't find Article with id=my-new-flat
失蹤我還有其他東西還是在我的應用程序中的任何問題?我雖然對名稱的參數化只需要建立模型規則...
還有一種方法可以不使用** FriendlyId **。我知道這個寶石,但我不想幹涉數據庫結構...無論如何,你必須改變軌道如何工作,什麼是':ID'路線參數的方式。 – user984621
。您可以查看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。第二個是你正在尋找的實際擴展,它應該擴展ActiveRecord :: Base –
還有一件事,該方法的原始實現也應該炒作,所以要注意它響應模型的實際ID。你只需要用'Article.find_on(1234)'和'Article.find_one(「article-name-or-title」)來測試它' –