Ответ 1
В регулярном выражении мы имеем два якоря:
- Начало строки/строки
^
- Конец строки/строки
$
Попробуйте удалить $
из шаблона, и вам должно быть хорошо идти...
У меня есть следующий маршрут:
get 'users/:user_id/:name', to: 'profiles#show',
:constraints => { :name => /[a-zA-Z0-9_]+$/ }, as: 'user_profile'
Что вызывает ошибку:
Regexp anchor characters are not allowed in routing requirements: /[a-zA-Z0-9_]+$/
Итак, я понимаю, что символ ^ не разрешен, но не уверен, какой символ производит эту конкретную ошибку маршрутизации.
В регулярном выражении мы имеем два якоря:
^
$
Попробуйте удалить $
из шаблона, и вам должно быть хорошо идти...
Якорями регулярных выражений являются ^
и $
, но они ничего не достигают. "(Y) не нужно использовать привязки, потому что все маршруты привязаны к началу." .
Итак, ограничение:
:constraints => { :name => /[a-zA-Z0-9_]+/ }
сделает то, что вы хотите - убедитесь, что имя состоит из 1 или более из этих символов, и ничего больше. BTW вы можете упростить регулярное выражение:
:constraints => { :name => /\w+/ }