我有一些路线,如:
get 'route1' => 'controller#route1', as: 'route1'
get 'route2' => 'controller#route2', as: 'route2'
get 'route3' => 'controller#route3', as: 'route3'
如何使用此模式自动匹配更多路线,例如4,5 ...
答案 0 :(得分:1)
我不确定如何处理as
部分路线。但是你可以用另一种方式编写这段代码。您可以创建一条路径来处理主路径末端的所有此类路由,如下所示:
get '/:route' => 'controller#route_for_all_views'
在您的控制器中,您应该执行此route_for_all_views
操作,该操作可以处理所有页面。
class SomeController < ApplicationController
def route_for_all_views
# handle your views and code with params[:route] here
end
end
答案 1 :(得分:1)
我认为你可以这样做:
get "/:action", to: "controller", constraints: {action: /route\d+/}
请参阅dynamic segments了解路线。
(另请注意,如果您的控制器没有这种方法,这会引发异常,因此您可能需要使用类似method_missing
的内容)
答案 2 :(得分:0)
这可能是一个混乱的解决方案,但你也可以这样做,这将为你提供*_path
和*_url
网址助手,你使用:as
选项。
%w{ route1 route2 route3 route4 route5 }.each do |route|
get route, to: "controller##{route}", as: route
end