所以我有一条路线:
get '/:param1-:param2', param1: /some_constraint/, param2: /some_constraint/有时我会得到/:param1+:param2格式的url。为了说明这一点,我尝试:
get '/:param1(-|+):param2', param1: /some_constraint/, param2: /some_constraint/但问题是,我认为括号使其成为可选的,因为这就是Rails路由的工作方式。我似乎不能使用正则表达式,除非给它赋值一个变量。如果我将variable :symbol赋值给(-|+)约束,那么它就可以工作。但我不希望符号是一个变量,因为当我构建路径和做其他事情时,我必须记住符号作为一个参数。有没有更好的方法来做这件事?
发布于 2015-12-19 03:49:37
记住,routes.rb文件是一个Ruby文件,所以你可以循环:
%w(+ -).each |symbol|
get "/:param1#{symbol}:param2", param1: /some_constraint/, param2: /some_constraint/
endsymbol没有一个更好的名字,但你可以找到更多与你正在做的事情相关的东西。
https://stackoverflow.com/questions/34362817
复制相似问题