2013-12-18 3 views
0

Скажем, у меня есть User, что has_one ContactInfo.RESTful вложенный контроллер в has_one отношения

беспокойный способ редактирования 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 является запутанным номером для пользователя. (Они могут знать свой собственный идентификатор пользователя, но contact_info_id будет выглядеть как произвольное число).

Есть ли способ, чтобы маршрут RESTfully как ниже:

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 
Смежные вопросы