2013-12-18 63 views
0

說我有一個User has_one ContactInfohas_one關係中的RESTful嵌套控制器

的unrestful方式來編輯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看起來像一個任意數字)。

有什麼辦法以REST風格的路線如下圖所示:

myapp.com/users/15/contact_infos/edit 

或類似的東西?這是一個壞主意嗎?

+0

顯示你的路由文件。 –

+0

好點!我把它作爲一個複合資源嵌套爲'resources:contact_infos',但將它改爲'resource:contact_info',現在看起來像我想要的。如果你爲我發佈答案,我會接受。 – umezo

回答

0
resources :users do 
    get "contact_info/edit" => 'users#edit_contact_info' 
end 
0

我使用了複數路線,而不是單一路線。憑藉獨特的路線,我得到了myapp.com/users/15/contact_info/edit

曾有:

resources :users do 
    resources :contact_infos 
end 

改爲

resources :users do 
    resource :contact_info 
end