2017-02-21 247 views
0

我试图创建一个路由,允许任何与静态段“-review”:url_key。我正在使用的网址可能在静态段中的子字符串 - 概览之前或之后有任何文本。我见过只允许整数的例子,但我对正则表达式语法不是很熟悉,我不太清楚如何编写约束。这是我到目前为止。Ruby On Rails - 路由约束

get '/:url_key', to: 'reviews#review', constraint: { url_key: "(anything before)-review(anything after)" } 
+0

为什么不'/评论/ :review_id'其中'review_id'实际上可以是一个slu instead? – max

+0

这将是首选的方法,但我不得不维护已经有好的Google排名的网址。 @Max –

回答

1

试试这个:

get '/:url_key', to: 'reviews#review', constraints: { url_key: /.*-review.*/ } 

如果你想保证 - 审查部分之前至少有一个字符,使用这个表达式来代替:

/.+-review.*/