2013-11-13 4 views
0

Я хочу уловить URL-адреса, содержащие знак + в его втором сегменте.Игнорировать правило маршрутизации, если условие не выполнено.

Если в нем нет этого символа, правило должно игнорироваться все вместе.

Я пытаюсь сделать это с constraints, как это:

get ":topic/:cities", to: "cities#show", constraints: {cities: /.*\+.*/} 

Но Unfortuantely код, указанный выше переопределениях и фиксаторами, а также запросы, предназначенные для этого одного URL сегмента:

get ":topic", to: "topics#show" 

Почему это то, что я делаю неправильно?

И, во-вторых, есть ли лучший способ выполнить условную ситуацию, как указано выше, в routes.rb?

+1

В каком порядке вы пишите эти правила? Вы пытались с получить ": topic", to: "themes # show" над другим ограниченным правилом? – DiegoSalazar

+0

Да, я пробовал принцип приоритизации, и ничто не изменит ничего. –

ответ

0

Ваше действие show включает идентификатор, поэтому ваши регулярные выражения также ловят его. Изменить правило регулярного выражения на [a-z]+\+?[a-z]+. Надеюсь, это поможет.

Смежные вопросы