Это называется именованными маршрутами и делается в вашем config/routes.rb
В вашем файле маршрутов:
map.stories 'stories/:id', :controller => 'books', :action => 'show'
Тогда, по вашему мнению, вы можете получить доступ к этому маршруту с помощью:
<%= link_to book.name, stories_path(book) %>
Убедитесь, что вы изменили book.name
на любое другое имя. также убедитесь, что вы передаете book
как локальную переменную в маршрутный путь.
Вы также можете изменить :id
, чтобы он был более дружественным к SEO с to_param
в соответствующей модели.
В вашей модели:
def to_param
"#{id}-#{name.gsub(/\s/, '_').gsub(/[^\w-]/, '').downcase}"
end
Также убедитесь, что вы заменили name
на атрибут, который на самом деле имеет модель книги.