28

我想将一个额外的参数传递给资源的成员路由

就像是:

resources :events do
  member do
    get 'register/:participant_type_id'
  end
end

我只能使用静态匹配语句来完成它

环顾互联网,我发现这在 Rails 3.0.2 中是可能的。我使用的是 3.0.1,但它确实不是。

难道我做错了什么?还是真的不可能?

谢谢

4

2 回答 2

41

试试这个:

resources :events do
  member do
    get 'register/:participant_type_id', :action => 'register'
  end
end
于 2010-11-24T20:34:52.173 回答
18

只是用我的小发现来完成答案。这也让我困惑了好一阵子。

在 Rails3 中,带参数的成员路由不会有自动生成的xx_yy_pathhelper。您需要添加它提供:as =>部分,省略resources名称。

关于提供的示例,要获取register_event_pathand register_event_url,您需要将其定义如下:

resources :events do
  member do
    get 'register/:participant_type_id', :action => 'register', :as => 'register'
  end
end
于 2012-04-02T13:32:35.700 回答