Pergunta

No meu aplicativo Rails 3, tenho uma rota que aparece da seguinte maneira ao chamar Rake Rotes:

topic_snippets GET /topics/:topic_id/snippets(.:format) {:action=>"index", :controller=>"snippets"}

Em rotas.rb

resources :topics do
 member do
  get 'get_topics'
 end
 resources :snippets, :only => [:index]
end

Na minha opinião, estou fazendo referência a esta rota da seguinte forma (onde @Name = "Snippets"):

<%= send("topic_#{@name}_path")%>

Ao executar a linha anterior, recebo o seguinte erro de roteamento, não tenho certeza do porquê:

No route matches {:controller=>"snippets"}

Atualização: encontrei outra pergunta cujas respostas parecem sugerir que o acima deve funcionar: Construa dinamicamente a rota RESTful usando trilhos

Obrigado
Anand

Foi útil?

Solução

Ok, eu encontrei - o comentário de Ryan forneceu a pista.

Eu não estava passando no @topic, o que é necessário. Se eu remover o @topic, ele tentará apenas obter / snippets / que não possui uma rota. Defino @topic para um tópico válido antes de ligar para esta linha e funciona. Obrigado, Ryan!

Outras dicas

Você tentou

<%= send(eval("topic_#{@name}_path"), @topic)%>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top