我有两个具有has-many / belongs-to关系的模型。路由是嵌套的,我在routes.rb:
中有这个resources :threads do
resources :posts
end
所以我获得了例如example.org/threads/147/posts/372和example.org/threads/298等网址。
如何更改,以便URL更像example.org/147/372,隐含模型?
答案 0 :(得分:1)
您可以配置如下路线:
match ':id' => 'threads#show'
match ':thread_id/:id' => 'posts#show'
这样可行,但它也会导致其他路线出现问题,因为它不仅会匹配example.org/123/456,还会匹配example.org/user/mark
为了确保它只匹配模型的可能id(数字),您可以添加如下约束:
match ':id' => 'threads#show', :constraints => { :id => /\d*/ }