error de raíles "puede que tenga rutas ambiguas"
-
07-07-2019 - |
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?
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