首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ruby on Rails路由:如何在不参数化的情况下在路由中使用OR

Ruby on Rails路由:如何在不参数化的情况下在路由中使用OR
EN

Stack Overflow用户
提问于 2015-12-19 03:42:45
回答 1查看 28关注 0票数 1

所以我有一条路线:

代码语言:javascript
复制
get '/:param1-:param2', param1: /some_constraint/, param2: /some_constraint/

有时我会得到/:param1+:param2格式的url。为了说明这一点,我尝试:

代码语言:javascript
复制
get '/:param1(-|+):param2', param1: /some_constraint/, param2: /some_constraint/

但问题是,我认为括号使其成为可选的,因为这就是Rails路由的工作方式。我似乎不能使用正则表达式,除非给它赋值一个变量。如果我将variable :symbol赋值给(-|+)约束,那么它就可以工作。但我不希望符号是一个变量,因为当我构建路径和做其他事情时,我必须记住符号作为一个参数。有没有更好的方法来做这件事?

EN

回答 1

Stack Overflow用户

发布于 2015-12-19 03:49:37

记住,routes.rb文件是一个Ruby文件,所以你可以循环:

代码语言:javascript
复制
%w(+ -).each |symbol|
  get "/:param1#{symbol}:param2", param1: /some_constraint/, param2: /some_constraint/
end

symbol没有一个更好的名字,但你可以找到更多与你正在做的事情相关的东西。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34362817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档