Ruby on rails Rails路由如何约束我的路由id?
在我的Rails应用程序中,我有一个如下路径:Ruby on rails Rails路由如何约束我的路由id?,ruby-on-rails,angularjs,Ruby On Rails,Angularjs,在我的Rails应用程序中,我有一个如下路径:/events/event\u name。在我的routes.rb文件中,我将/events/:id下匹配的任何路径指向同一控制器。但是,我想做的是将:id限制为仅选择选项(即,仅允许马拉松和游泳继续,其他任何内容都将转到404)。实际的id处理是以角度处理的。有没有一种方法可以轻松地限制我的路线,而不必列出每一个可能的选择 routes.rb: get '/events/:id' => 'static_pages#event', cons
/events/event\u name
。在我的routes.rb文件中,我将/events/:id
下匹配的任何路径指向同一控制器。但是,我想做的是将:id
限制为仅选择选项(即,仅允许马拉松
和游泳
继续,其他任何内容都将转到404)。实际的id处理是以角度处理的。有没有一种方法可以轻松地限制我的路线,而不必列出每一个可能的选择
routes.rb:
get '/events/:id' => 'static_pages#event', constraints: {id:[ 'concessions', 'football']} #this doesn't work
角度代码:
app.config([
'$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
// console.log($routeProvider.$get);
$locationProvider.html5Mode({enabled: true, requireBase: false});
$routeProvider.
when('/events/:id', {
templateUrl: '../templates/eventTemp.html',
controller: 'EventsCtrl'
})
}
]);
编辑:为了澄清,通过“列出所有可能的选择”,我的意思是不必这样做:
get '/events/concessions' => 'static_pages#event'
get '/events/football' = 'static_pages#event'
您应该能够使用:
get '/events/:id' => 'static_pages#event', constraints: { id: /concessions|football/ }
此格式接受任何正则表达式,但不能(也不需要)包含锚点。有关更多信息,请参阅文档