我想匹配所有以 开头的 URL /company/
,所以我有这条路线:
match '/*id' => 'high_voltage/pages#show', :constraints => { id: /^company\/.*/ }
但是约束没有做任何事情。URL/abc
也匹配此路由并PagesController
引发错误。
我应该如何指定这个?
我需要id
参数包含company/
在开头,所以请不要说只做路由match '/company/*id'
。这将为控制器提供一个id
没有company/
.
更新:我确实在普通的 Ruby 中尝试了上面的正则表达式,它可以工作。我也试过没有 ^ 在公司前面(虽然我确实需要公司作为第一个词),但没有运气。
更新2:问题似乎出在通配符上,通配符路由是否适用于约束?当路线中有通配符时,我无法获得任何约束。
更新 3:原来这只是Ruby on Rails 中的一个错误。