所以我有一条路线:
get '/:param1-:param2', param1: /some_constraint/, param2: /some_constraint/
有时我会以格式/:param1 +:param2获取网址。为了解释这一点,我尝试了:
get '/:param1(-|+):param2', param1: /some_constraint/, param2: /some_constraint/
但问题是我认为括号使它成为可选项,因为这就是Rails路由的工作原理。我似乎不能使用正则表达式,除非变量是它的配置。如果我有一个变量:符号分配给( - | +)约束,那么它可以工作。但是我不希望符号变成变量,因为当我构建路径并做其他事情时,我必须记住符号作为参数。有更好的方法吗?
答案 0 :(得分:2)
记住routes.rb文件是一个Ruby文件,所以你可以循环:
%w(+ -).each |symbol|
get "/:param1#{symbol}:param2", param1: /some_constraint/, param2: /some_constraint/
end
symbol
由于缺少一个更好的名字,但你可以在上下文中找到更多内容。