子域上的Rails路由约束不匹配正则表达式路由

时间:2015-05-20 13:42:37

标签: ruby-on-rails regex

我有一条看起来像这样的路线:

match '/', to: 'browse#city_companies', constraints: { subdomain: /[a-z\-]+-[a-z]{2}/ }, :via => [:get]

约束中使用的正则表达式/[a-z\-]+-[a-z]{2}/将匹配例如:“birmingham-al”,但不匹配“南卡罗莱纳州”。这将是我试图实现的行为。

然而,铁路在“伯明翰”和“南卡罗来纳”都使用这条路线,这不是我想要的。我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

你忘了使用字符串结尾:

/[a-z\-]+-[a-z]{2}\z/

/[a-z\-]+-[a-z]{2}$/

,路线可以是:

get '/', to: 'browse#city_companies', constraints: { subdomain: /[a-z\-]+-[a-z]{2}\z/ }