В настоящее время у меня есть маршрут, который выглядит так:
resources :posts
Я хочу переопределить действие 'show', чтобы я мог отобразить URL-адрес, подобный этому:
posts/:id/:slug
В настоящее время я могу это сделать, добавив пользовательский маршрут match
:
resources :posts
match 'posts/:id/:slug' => 'posts#show'
Однако, когда я использую помощник link_to
, он не использует мой собственный маршрут показа.
<%= link_to 'show', post %> # renders /posts/123
Как я могу определить маршрут показа, чтобы я мог использовать помощник link_to
?
Обновление:. Как вы можете прочитать в следующих ответах, вы можете переопределить маршрут к действию "показать", но это, вероятно, больше, чем стоит. Легче создать собственный маршрут:
# config/routes.rb
match 'posts/:id/:slug' => 'posts#show', as: 'post_seo'
# app/views/posts/index.html.erb
<%= link_to post.title, post_seo_path(post.id, post.slug) %>