2010-11-24 66 views
28

我想一个额外的参数传递给资源Rails3中路线 - 传递参数给会员路线

类似的成员路线:

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

我只能用一个静态的比赛完成它声明

环顾网上,我看到这可能在Rails 3.0.2中可能。我使用的是3.0.1,但它并不是。

我做错了什么?或者它真的不可能?

感谢

+0

这应该是可能的3.0.1,你得到一个错误? – edgerunner 2010-11-24 20:13:04

+0

是的,我得到'失踪:行动' – Diogo 2010-11-24 20:28:57

+0

发现这一点,不知道如果其相关... https://rails.lighthouseapp.com/projects/8994/tickets/5431-rails-3-rc-routing-resource- member-routes-lack-defaults – Diogo 2010-11-24 20:33:21

回答

40

试试这个:

resources :events do 
    member do 
    get 'register/:participant_type_id', :action => 'register' 
    end 
end 
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