【发布时间】:2016-09-20 08:39:42
【问题描述】:
我有很多路线可以像:
possible routes:
- mac-book-retina-17-pid234-234
- hp-laptop-pid234-234
- vaoe-x12-pid234-234
我想使用 Ruby 路由文件中的约束将所有操作匹配到一个操作。像
get 'products/:product_info', to: 'products#type', constraints: { product_info: /[a-z]+-a-z]+-a-z]+-pid\d+-\d+/ }
问题是/[a-z]+-/ 可以重复 1 次、2 次和 3 次,并且很难为所有情况获得一致的共享 Regex。
在所有路由中唯一不变的部分是最后一部分:pid234-234,它指的是产品 id 和另一个 sub_id。
我正在考虑类似的事情:找到所有字符串,直到你每个这部分(pid),但我不知道该怎么做。
【问题讨论】:
-
类似this?
-
您可以使用花括号将组的重复次数指定为范围,例如
([a-z0-9]-){1,4}.
标签: ruby regex ruby-on-rails-4 routes