我试图设置一些指向同一个控制器的铁路路线,让我们说" mycontroller"有3个动作,没有资源支持。这3个动作是GET,让我们称之为" action1"," action2"和" action3",所以我最终设置类似
的东西get "mycontroller/action1" => "mycontroller#action1", as: :action1_mycontroller
每次行动一次。有没有办法做像
这样的事情resourceless :mycontroller do
get 'action1'
get 'action2'
get 'action3'
end
提前致谢。
答案 0 :(得分:1)
如果您执行以下操作:
resources :my_controller, :only => [] do
collection do
get 'action1'
get 'action2'
get 'action3'
end
end
然后在rake routes
中,您会看到:
action1_my_controller_index GET /my_controller/action1(.:format) my_controller#action1
action2_my_controller_index GET /my_controller/action2(.:format) my_controller#action2
action3_my_controller_index GET /my_controller/action3(.:format) my_controller#action3
我怀疑,您可以随意使用as:
获取您喜欢的路径名称。
或者,如果你这样做(如你所说):
namespace :mycontroller do
get "action1"
get "action2"
get "action3"
end
你得到:
mycontroller_action1 GET /mycontroller/action1(.:format) mycontroller#action1
mycontroller_action2 GET /mycontroller/action2(.:format) mycontroller#action2
mycontroller_action3 GET /mycontroller/action3(.:format) mycontroller#action3
后者(你的)越多越好。