Почему этот маршрут с сегментами, ожидающими дефисные записи, не будет работать должным образом? - PullRequest
0 голосов
/ 21 июня 2019

Рельсы 4.x

У меня есть следующий маршрут:

get ":state_abbr/c/:city-:state_abbr-:specialty" => "cities#specialty", as: :city_page_specialty

Некоторые пути, которые я ожидаю работать, работают, а некоторые нет.

Давайте посмотрим на этот URL:

/tx/c/fort-worth-tx-allergists

Возвращает следующие параметры:

{"controller"=>"cities", "action"=>"specialty", "state_abbr"=>"tx", "city"=>"fort-worth", "specialty"=>"allergists"}

Именно так, как я и ожидал. Обратите внимание, что маршрут изящно работает с дефисом в названии города.

Теперь давайте посмотрим на этот путь:

/tx/c/fort-worth-tx-ob-gyns

Возвращает следующее:

No route matches [GET] "/tx/c/fort-worth-tx-ob-gyns"

Все имеющиеся у меня значения, которые должны использоваться в качестве параметра: specialty, работают нормально, если они не переносятся.

Итак, вопрос на миллион долларов ... Зачем: город будет обрабатывать дефис в 'fort-worth', но: специальность не будет обрабатывать дефис в 'ob-gyns'?

Я искренне озадачен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...