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?

Était-ce utile?

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
scroll top