aar*_*ell 6 routing ruby-on-rails ruby-on-rails-3
在Rails 2中,我们可以new为资源丰富的路由添加自定义操作,例如:
map.resources :users, :new => {:apply => :get}
Run Code Online (Sandbox Code Playgroud)
我们如何在Rails 3中实现同样的功能?
resources :users do
get :apply, :on => :new # does not work
new do
get :apply # also does not work
end
end
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
您可以:path_names按边缘路线指南中的说明使用:
resources :users, :path_names => { :new => "apply" }
Run Code Online (Sandbox Code Playgroud)
这只会改变路径apply,它仍然会被路由到new动作.我认为不再明确支持改变(这可能是一件好事).
如果你想保持你的apply行动,你应该做:
resources :users, :except => :new do
collection do
get :apply
end
end
Run Code Online (Sandbox Code Playgroud)
但它让你想知道将apply动作重命名为是不是更好new.