Ruby on rails 路由到同一操作,根据路由发送参数
我有一系列的URL,我希望所有的URL都路由到同一个操作,但是每个URL都根据它们是什么传递一个参数 通常,这很容易。我会做一些类似的事情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/: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,因为这更符合我的想法,但这也很有效,我感谢您的帮助:]