【问题标题】:Ignore routing rule if condition is not met如果条件不满足则忽略路由规则
【发布时间】:2013-11-13 05:15:37
【问题描述】:

我想捕获在其第二段中包含 + 符号的 URL。

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

我正在尝试像这样使用constraints

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

但不幸的是,上面的代码覆盖并捕获了针对这个单段 URL 的请求:

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

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

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

【问题讨论】:

  • 您是按什么顺序编写这些规则的?您是否尝试使用 get ":topic", to: "topics#show" 高于其他约束规则?
  • 是的,我已经尝试过优先原则,不,这不会改变任何事情。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多