Rails3路由 - 将参数传递给成员路由

Dio*_*ogo 28 routes ruby-on-rails custom-routes ruby-on-rails-3

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

就像是:

resources :events do
  member do
    get 'register/:participant_type_id'
  end
end
Run Code Online (Sandbox Code Playgroud)

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

环顾互联网,我发现在Rails 3.0.2中这可能是可行的.我使用的是3.0.1而且它不是.

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

谢谢

Fáb*_*sta 41

试试这个:

resources :events do
  member do
    get 'register/:participant_type_id', :action => 'register'
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 我不知道,我只是提供我的应用程序告诉我它丢失的任何内容.它说'缺少行动',我给他们行动. (11认同)

lar*_*hao 17

只是用我的小发现完成答案.它也困扰了我很长一段时间.

在Rails3中,带参数的成员路由不具有自动生成的xx_yy_path帮助器.你需要添加它提供的:as =>部分,省略resources名称.

关于提供的示例,要获取register_event_pathregister_event_url,您需要像下面这样定义它:

resources :events do
  member do
    get 'register/:participant_type_id', :action => 'register', :as => 'register'
  end
end
Run Code Online (Sandbox Code Playgroud)