我想知道如何生成包含两个不同模型的友好ID的URL。例如,如果您有一个名为“ Rails Tutorial”的帖子,并且属于一个名为“ Michael”的特定用户,并且他们每个人都使用a来代替其ID,那么您将如何生成类似于site.com/michael的url / rails-tutorial。
如果您将路线设置为:
get ':id/:id' => 'posts#show', as: 'show_post'
URL将是michael / michael或rails-tutorial / rails-tutorial,但是从我所知道的Friendly_id的工作方式来看,您的子弹由:id表示,因此您无法将其配置为与get'一起使用:user_id /:post_id'。
我确定我只是不太了解FriendlyID。任何帮助表示赞赏。
为了获得所需的网址,您需要嵌套路线:
resources :users do
resources :posts
end
这将为您提供路线:
localhost:3000/users/slug/post/slug
您还必须在每个模型中都使用extend FriendlyId
,将子弹添加到迁移中的每个模型中,并在控制器操作中使用.friendly
。