Я знаю, что вопрос довольно старый, но я думаю, что он все еще заслуживает некоторого интереса, и ни один из ответов не является актуальным или предоставляет способ для точного генерирования того, что ищет ОП (т.е. http://localhost/posts/1234/post-slug-name
).
В маршрутах.рб
get 'posts/:id/:slug', to: 'posts#show', as: 'slugged_post'
Тогда в представлениях
<%= link_to slugged_post_path(post, post.name.parameterize) %>
Возможно, вы захотите определить метод slug в вашей модели, чтобы избежать вызова параметризации в представлениях.