Ruby on rails Rails路由:如何基于模式匹配Rails路由
我有一些路线,如:Ruby on rails Rails路由:如何基于模式匹配Rails路由,ruby-on-rails,Ruby On Rails,我有一些路线,如: get 'route1' => 'controller#route1', as: 'route1' get 'route2' => 'controller#route2', as: 'route2' get 'route3' => 'controller#route3', as: 'route3' 如何将更多路线自动与此模式匹配,例如4、5…我不确定如何将作为路线的一部分处理。但您可以用另一种方式编写此代码。您可以创建一条管线,在主管线末端处理所有此
get 'route1' => 'controller#route1', as: 'route1'
get 'route2' => 'controller#route2', as: 'route2'
get 'route3' => 'controller#route3', as: 'route3'
如何将更多路线自动与此模式匹配,例如4、5…我不确定如何将
作为路线的一部分处理。但您可以用另一种方式编写此代码。您可以创建一条管线,在主管线末端处理所有此类管线,如下所示:
get '/:route' => 'controller#route_for_all_views'
在您的控制器中,您应该为所有视图设置此route\u操作,它可以处理所有页面
class SomeController < ApplicationController
def route_for_all_views
# handle your views and code with params[:route] here
end
end
class SomeController
我不确定您如何将作为路线的一部分处理。但您可以用另一种方式编写此代码。您可以创建一条管线,在主管线末端处理所有此类管线,如下所示:
get '/:route' => 'controller#route_for_all_views'
在您的控制器中,您应该为所有视图设置此route\u操作,它可以处理所有页面
class SomeController < ApplicationController
def route_for_all_views
# handle your views and code with params[:route] here
end
end
class SomeController
我想你可以这样做:
get "/:action", to: "controller", constraints: {action: /route\d+/}
请查看路线
(还要注意,如果您的控制器没有该方法,这将引发异常,因此您可能需要使用类似方法\u missing
)我认为您可以这样做:
get "/:action", to: "controller", constraints: {action: /route\d+/}
请查看路线
(还请注意,如果您的控制器没有该方法,这将引发异常,因此您可能需要使用类似方法\u missing
)这可能是一个混乱的解决方案,但您也可以执行类似的操作,这将为您提供*\u路径
和*\u url
url帮助,当您使用:as
选项时得到的
%w{ route1 route2 route3 route4 route5 }.each do |route|
get route, to: "controller##{route}", as: route
end
这可能是一个混乱的解决方案,但您也可以这样做,这将为您提供*\u路径
和*\u url
url帮助程序,这是您使用:as
选项时获得的帮助程序
%w{ route1 route2 route3 route4 route5 }.each do |route|
get route, to: "controller##{route}", as: route
end
您已经注意到我了,我是这样做的:get'/:routes',to:'controller#route_for _all_view'
,constraints:{routes:/^routes\d$/}',controller和您一样,非常感谢!您已经注意到我了,我是这样做的:get'/:routes',to:'controller#route_for _all_view'
,constraints:{routes:/^routes\d$/}',controller和您一样,非常感谢!