没有路由匹配控制器

时间:2010-11-18 09:26:36

标签: ruby ruby-on-rails-3 send

在我的rails 3 app中,我有一条路线在调用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")%>

执行上一行时,出现以下路由错误,不确定原因:

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

更新:我发现了另一个问题,其答案似乎暗示上述内容应该有效:Dynamically construct RESTful route using Rails

感谢
阿南德

2 个答案:

答案 0 :(得分:3)

好的,我找到了 - 瑞恩的评论提供了线索。

我没有传递@topic,这是必需的。如果我删除@topic,它会尝试获取/ snippets /没有路由。在调用此行之前,我将@topic设置为有效主题,并且它可以正常工作。谢谢,瑞恩!

答案 1 :(得分:0)

你试过吗

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