Как добавить заголовок статьи в URL, используя link_to в приложении Rails? - PullRequest
4 голосов
/ 25 января 2011

Я пытаюсь следовать ответить на вопрос

Как получить link_to в Rails для вывода оптимизированного для 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

Однако после перезапуска сервера ссылки не имеют заголовка: / article / 1, / article / 2

Что не так?

1 Ответ

7 голосов
/ 25 января 2011

Ваш 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 . Это делает это для вас, но более прозрачно.

...