说我有User
has_one ContactInfo
。
编辑contact_info的一种不可靠的方法是通过一个路径为:
的单一控制器来完成这一切。myapp.com/users/15/edit_contact_info
更安静的方法是使用两个控制器,然后像这样路由:
myapp.com/users/15/contact_infos/23/edit
但是,我不喜欢这样,因为路由包含contact_info_id,这对于识别要更新的正确contact_info并不是必需的。另外,contact_info_id是用户可以看到的令人困惑的号码。 (他们可能知道自己的用户ID,但contact_info_id看起来像是一个任意数字。)
有没有办法像下面那样RESTful路由:
myapp.com/users/15/contact_infos/edit
或类似的东西?这是个坏主意吗?
答案 0 :(得分:0)
resources :users do
get "contact_info/edit" => 'users#edit_contact_info'
end
答案 1 :(得分:0)
我使用了复数路线,而不是单一路线。通过单一路线,我得到myapp.com/users/15/contact_info/edit
。
要是:
resources :users do
resources :contact_infos
end
已更改为
resources :users do
resource :contact_info
end