Pregunta

Tengo un problema con mis rutas y el nombre de la ruta que genera. O lo estoy nombrando mal en la vista o algo así ... no estoy totalmente seguro. Mis relaciones en mis modelos son las siguientes:

class Client < ActiveRecord::Base
  has_many :users
  has_many :elements, :through => :users 
end

class Element < ActiveRecord::Base
  belongs_to :user
end

Mis rutas son como:

map.resources :elements
map.resources :clients, :has_many => :elements

Y en mi opinión tengo:

<%= link_to element.name, client_element_url %>

Pero el error que obtengo es:

    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?

No estoy seguro de cómo proceder, ¿me estoy perdiendo algo que está en mi cara?

¿Fue útil?

Solución

Debe pasar el elemento y el cliente al método de URL:

<%= link_to element.name, client_element_url(element.client, element)

De esta forma, sabe qué client_id y element_id usar en la ruta

/clients/:client_id/elements/:element_id
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top