Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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 路由到同一操作,根据路由发送参数_Ruby On Rails_Routing_Rails Routing - Fatal编程技术网

Ruby on rails 路由到同一操作,根据路由发送参数

Ruby on rails 路由到同一操作,根据路由发送参数,ruby-on-rails,routing,rails-routing,Ruby On Rails,Routing,Rails Routing,我有一系列的URL,我希望所有的URL都路由到同一个操作,但是每个URL都根据它们是什么传递一个参数 通常,这很容易。我会做一些类似的事情 url/:matcher => controller#action 我会有:匹配器可用 然而,这是在根级别,我觉得简单地为/:matcher创建一个路由是不对的,因为这将捕获比我想要的多得多的内容 是否有匹配的方法,例如: /myroute => 'controller#action' {param[:route] = 'myroute'}

我有一系列的URL,我希望所有的URL都路由到同一个操作,但是每个URL都根据它们是什么传递一个参数

通常,这很容易。我会做一些类似的事情

  url/:matcher => controller#action
我会有:匹配器可用

然而,这是在根级别,我觉得简单地为
/:matcher
创建一个路由是不对的,因为这将捕获比我想要的多得多的内容

是否有匹配的方法,例如:

/myroute => 'controller#action' {param[:route] = 'myroute'}

是的,您可以设置默认值:

get '/myroute', to: 'controller#action', defaults: { route: 'myroute' }
get '/myotherroute', to: 'controller#action', defaults: { route: 'myotherroute' }
这将设置一个名为
route
的参数,该参数将在控制器中的
params[:route]
下可用

查看路线指南部分。

使用约束:

get '/:matcher' => 'controller#action', matcher: /myroute/

啊,太简单了。非常感谢。这很有效,谢谢。我将接受CDub,因为这更符合我的想法,但这也很有效,我感谢您的帮助:]