如果不满足条件,则忽略路由规则

时间:2013-11-13 05:15:37

标签: ruby-on-rails ruby ruby-on-rails-3.2 routing routes

我希望在其第二段中捕获包含+符号的网址。

如果它不包含该字符,则应该完全忽略该规则。

我正试图用constraints这样做:

get ":topic/:cities", to: "cities#show", constraints: {cities: /.*\+.*/}

但不幸的是,上面的代码会覆盖并捕获针对此单段网址的请求:

get ":topic", to: "topics#show"

为什么这样,我做错了什么?

其次,有没有更好的方法来完成routes.rb中的上述条件情况?

1 个答案:

答案 0 :(得分:0)

您的show动作包含id,因此您的约束正则表达式也会捕获它。将约束正则表达式更改为[a-z]+\+?[a-z]+。希望有所帮助。