rails error «vous pouvez avoir des itinéraires ambigus»
-
07-07-2019 - |
Question
Je rencontre un problème avec mes itinéraires et le nom du chemin qu’il génère. Ou je le nomme mal dans la vue ou quelque chose ... pas tout à fait sûr. Mes relations dans mes modèles sont les suivantes:
class Client < ActiveRecord::Base
has_many :users
has_many :elements, :through => :users
end
class Element < ActiveRecord::Base
belongs_to :user
end
Mes itinéraires ressemblent à:
map.resources :elements
map.resources :clients, :has_many => :elements
Et à mon avis, j'ai:
<%= link_to element.name, client_element_url %>
Mais l'erreur que je reçois est la suivante:
edit_client_element_url failed to generate from {:action=>"edit", :controller=>"elements"} - you may have ambiguous routes, or you may need to supply additional parameters for this route. content_url has the following required parameters: ["clients", :client_id, "elements", :id, "edit"] - are they all satisfied?
Je ne sais pas comment procéder. Est-ce qu'il me manque quelque chose qui me va droit au visage?
La solution
Vous devez transmettre l'élément et le client à la méthode url:
<%= link_to element.name, client_element_url(element.client, element)
De cette façon, il sait quel client_id et element_id utiliser dans la route
/clients/:client_id/elements/:element_id
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow