Рельсы 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'?
Я искренне озадачен.