4

我正在尝试关注问题的答案

如何让 Rails 中的 link_to 输出一个 SEO 友好的 url?

但没有得到结果。在我的 Rails 3 应用程序中,我有:

# routes.rb
match '/articles/:id/:title' => 'articles#show'
resources :articles

# articles/index.html.haml
- @articles.each do |article|
  = link_to article.title, article, :title => article.title

但是,重启服务器后,链接没有标题:/articles/1、/articles/2

怎么了?

4

1 回答 1

7

link_to将使用来自 的路线resources :articles。如果您希望它使用您定义的自定义路由,请命名该路由,然后在您的link_to:

# routes.rb
match '/articles/:id/:title' => 'articles#show', :as => :article_with_title

# articles/index.html.erb
link_to article.title, article_with_title_path(article, :title => article.title)

此外,您可能需要考虑使用friendly_id。它为您执行此操作,但更透明。

于 2011-01-25T13:57:31.253 回答