Nenhum controlador de correspondência de rota
-
26-09-2019 - |
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
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)%>