如何在Rails应用程序中使用link_to将文章标题添加到URL?

时间:2011-01-25 13:47:02

标签: ruby-on-rails ruby-on-rails-3 seo link-to

我正在尝试关注answer来提问

How to get link_to in Rails output an SEO friendly 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

有什么问题?

1 个答案:

答案 0 :(得分: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。它为你做到了这一点,但更透明。