没有路由匹配控制器

发布于 2024-10-02 22:59:56 字数 737 浏览 2 评论 0原文

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

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

在 paths.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"}

更新:我发现了另一个问题,其响应似乎暗示上述内容应该有效:使用 Rails 动态构建 RESTful 路由

谢谢
阿南德

In my rails 3 app, I have a route which shows up as follows while calling rake routes:

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

In routes.rb

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

In my view, I am referencing this route as follows (where @name = "snippets"):

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

When executing the previous line, I get the following routing error, not sure why:

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

Update: I found another question whose responses seem to imply that the above should work: Dynamically construct RESTful route using Rails

Thanks
Anand

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

彼岸花ソ最美的依靠 2024-10-09 22:59:56

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

我没有传递@topic,这是必需的。如果我删除@topic,它会尝试访问没有路由的/snippets/。在调用此行之前,我将 @topic 设置为有效主题,并且它有效。谢谢,瑞安!

OK, I found it - Ryan's comment provided the clue.

I wasnt passing in @topic, which is required. If I remove @topic, it tries to just get at /snippets/ which doesn't have a route. I set @topic to a valid topic before calling this line and it works. Thanks, Ryan!

埋情葬爱 2024-10-09 22:59:56

你尝试过吗

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

Have you tried

<%= send(eval("topic_#{@name}_path"), @topic)%>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文