我有很多路线可以像:
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
),但我不知道该怎么做。
答案 0 :(得分:1)
我想说一个好的起点是dynamic-segments
get 'products/:product_info', to: 'products#type', constraints: { product_info: /[A-Z]\d{5}/ }
我希望这有助于
快乐黑客
答案 1 :(得分:0)
我想我找到了一个可能的解决方案:
(.*)pid\d+-\d+
此正则表达式将匹配所有字符串,直到它到达pid-12-12
。