Ruby 没有路由匹配控制器

Ruby 没有路由匹配控制器,ruby,ruby-on-rails-3,send,Ruby,Ruby On Rails 3,Send,在我的rails 3应用程序中,我有一条路线,在调用rake routes时显示如下: 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 =&g

在我的rails 3应用程序中,我有一条路线,在调用rake routes时显示如下:

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”):

更新:我发现了另一个问题,其回答似乎暗示上述方法应该有效:

谢谢
A你试过了吗

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

好的,我找到了-Ryan的评论提供了线索


我没有传递@topic,这是必需的。如果我删除@topic,它会尝试访问没有路由的/snippets/。在调用这一行之前,我将@topic设置为一个有效的topic,它就可以工作了。谢谢你,瑞安

我尝试使用eval-它给了我相同的错误,除了这次它显示了rails代码中引发路由错误的位置。但是什么是
@topic
,也许更重要的是,该对象的
id
?@topic参数似乎不相关-即使我删除它,我得到了同样的错误。我刚刚从问题中删除了@topic参数。你能显示routes.rb文件的相关部分吗?我已经在上面添加了routes.rb文件部分。
No route matches {:controller=>"snippets"}
<%= send(eval("topic_#{@name}_path"), @topic)%>