2009-04-17 4 views
3

je le routage suivant mis en place dans mon application (formulaires appartiennent à un site):comportement de routage Rails étrange: deux ids intervertir dans les ressources imbriquées

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

Cependant, lorsque je tente d'aller à un chemin pour modifier (ou tel) un formulaire en utilisant les aides (par exemple

edit_site_form_path(form) 

ou

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

mes URL sont à venir avec les ID échangés (/ sites/5/forms/1) où 5 est l'ID du formulaire et 1 est l'ID du site. Cela vient de la page/sites/1.

Aide (?)

Répondre

4

La méthode edit_site_form_path doit avoir deux paramètres, le site_id et le form_id. Donc, dans votre exemple, vous passez seulement dans le form_id. Le premier paramètre est ce que le modèle vient en premier dans la méthode, dans ce cas, il est site. Le deuxième paramètre est le form_id.

Une méthode du chemin remanié pourrait ressembler à ceci

edit_site_form_path(form.site, form) 

(en supposant que vous avez un modèle qui Formbelongs_to :site)

+0

Bingo - Je pense que Je t'aime, cela a été me rend dingue;) –