rails de erro “você pode ter rotas ambíguas”
-
07-07-2019 - |
Pergunta
Eu estou tendo um problema com minhas rotas e o nome do caminho que ele gera. Ou eu estou nomeando-o errado na vista ou algo assim ... não totalmente certo. Meus relacionamentos em meus modelos são os seguintes:
class Client < ActiveRecord::Base
has_many :users
has_many :elements, :through => :users
end
class Element < ActiveRecord::Base
belongs_to :user
end
As minhas rotas são como:
map.resources :elements
map.resources :clients, :has_many => :elements
E na minha opinião, eu tenho:
<%= link_to element.name, client_element_url %>
Mas o erro que eu recebo é:
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?
Eu não tenho certeza de como proceder, estou faltando alguma coisa que está bem na minha cara?
Solução
Você precisa passar no elemento e do cliente para o método url:
<%= link_to element.name, client_element_url(element.client, element)
Desta forma, ele sabe que client_id e element_id para usar na rota ??p>
/clients/:client_id/elements/:element_id
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow