没有路由匹配控制器
问题描述:
在我的Rails应用程序3,我有这显示了一个路线调用rake路线如下:没有路由匹配控制器
topic_snippets GET /topics/:topic_id/snippets(.:format) {:action=>"index", :controller=>"snippets"}
在routes.rb中
resources :topics do
member do
get 'get_topics'
end
resources :snippets, :only => [:index]
end
在我看来,我如下所示(其中@name =“snippets”):
<%= send("topic_#{@name}_path")%>
执行上一行时,出现以下路由错误:n加时赛知道为什么:
No route matches {:controller=>"snippets"}
更新:我发现他们的反应似乎暗示着上面的应该工作了另一个问题:Dynamically construct RESTful route using Rails
谢谢
阿南德
答
好吧,我发现了 - 瑞恩的评论提供了线索。
我没有通过@topic,这是必需的。如果我删除了@topic,它会试图在/ snippets /中找不到路由。在调用这一行之前,我将@topic设置为一个有效的主题,并且它可以工作。谢谢,瑞恩!
答
你试过
<%= send(eval("topic_#{@name}_path"), @topic)%>
+0
我尝试使用eval - 它给了我同样的错误,除了这次它显示了轨道代码中导致路由错误的位置。 – Anand 2010-11-18 18:00:38
但是'@ topic'是什么,也许更重要的是,该对象的'id'是什么? – 2010-11-18 18:12:49
@topic参数似乎不相关 - 即使我将其删除,也会得到相同的错误。 – Anand 2010-11-18 18:33:45
我刚刚从问题 – Anand 2010-11-18 18:34:13