Странное поведение Rails Routing: два идентификатора поменялись местами во вложенных ресурсах - PullRequest
3 голосов
/ 17 апреля 2009

В моем приложении настроена следующая маршрутизация (формы принадлежат сайту):

map.resources :sites do |site| 
 site.resources :forms
end 

Однако, когда я пытаюсь перейти к пути для редактирования (или тому подобное) формы с помощью помощников (например,

edit_site_form_path(form)

или

<%= link_to 'Show', [:site, form] %>

мои URL выходят с заменой идентификатора (/ sites / 5 / forms / 1), где 5 - это идентификатор формы, а 1 - идентификатор сайта. Это со страницы /sites/1.

Справка (?)

1 Ответ

4 голосов
/ 17 апреля 2009

Метод edit_site_form_path должен иметь два параметра, site_id и form_id. Так что в вашем примере вы передаете только form_id. Первый параметр - это то, что модель всегда стоит на первом месте в методе, в данном случае это site. Второй параметр - это form_id.

Обновленный метод пути может выглядеть следующим образом

 edit_site_form_path(form.site, form)

(при условии, что у вас есть модель Form, которая belongs_to :site)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...