在我的路由。我有这个资源
resources :home_screen_buttons do
post :update_multiple, :on => :collection
end
update_multiple helper is update_multiple_home_screen_buttons
然后我决定删除资源,因为我只需要控制器中的update_multiple方法,所以我改变了路由。rb
post "home_screen_buttons/update_multiple"
它创建helper home_screen_buttons_update_multiple而不是update_multiple_home_screen_buttons
为什么它有不同的路由助手名称?
这是有意义的:on =>:收集有不同的助手然后:on =>:成员,但是有没有其他的方式然后添加:as =>:update_multiple_home_screen_buttons到我的帖子方法相同的行为?
Rails就是这样做的。当使用match
时,它将URI映射到操作并创建相应的助手路径controller_action_path
但是当它被用作集合时,它就变成了该资源的RESTful操作,Rails为它提供了一个与集合相关的逻辑名称。这里引用一个例子:
resources :photos do
collection do
get 'search'
end
end
生成search_photos_path
。
你可以这样做:
resources :home_screen_buttons, :only => [:update_multiple] do
post :update_multiple, :on => :collection
end