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?

Foi útil?

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

/clients/:client_id/elements/:element_id
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top