2017-02-21 248 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.*/