0

我在理解 RESTFUL 资源如何在 Rails 3 中工作时遇到问题。如果我的rails routes.rb 文件中有:

resources :my_foos do
   member do
      get 'foo_bar'
   end
end

我有一个控制器文件 my_foos_controller.rb

class MyFoosController < ApplicationController
   def index
   end

   def foo_bar
   end
end

我有一个视图文件 test.html.erb

<%= foo_bar_my_foos_path %>

当我尝试显示我的 test.html.erb 文件时,出现错误:如标题所示。

如果我处理的是资源(单数)而不是复数资源,我向您描述的所有内容都有效。我在公约中遗漏了什么吗?

谢谢

4

2 回答 2

0

从命令行使用 rake routes 来显示您的路由。每条路线的最左边部分是路线的名称。附加 _path 以使其正常工作。

于 2012-01-22T16:52:50.717 回答
0

如果 foo_bar 被声明为成员操作,那么按照 rails 约定,当您使用命名路由时,您需要提供相应的模型资源 ID。像这样的东西应该工作

foo_bar_my_foos_path(@my_foos) # or @my_foos.id

如果您不想提供 id,请在您的路线中使用 collection。

于 2012-01-22T17:14:45.390 回答