Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails路由:如何基于模式匹配Rails路由_Ruby On Rails - Fatal编程技术网

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和您一样,非常感谢!