Имена контроллеров Rails с тире вместо подчеркивания - PullRequest
8 голосов
/ 10 марта 2011

Возможно ли заставить Rails использовать тире (-) вместо подчеркивания при обращении к контроллерам.

В настоящее время существует замечательная функция Inflector, которая называется parameterize.Это позволяет получать очень хорошие постоянные ссылки со всеми специальными символами, удаленными и замененными на тире ...

Однако при использовании контроллеров, которые имеют несколько слов (например, contact_methods_controller.rb), вы определяете свой маршрут:

resources :contact_methods

Создает карту для /contact_methods (НЕ /contact-methods).Когда я смешиваю эти два, я получаю ужасные URL-адреса, такие как:

/contact_methods/1-preferred-email

Я хотел бы иметь контроллеры карты Rails с черточками вместо подчеркивания.Все мои исследования говорят о том, чтобы индивидуально отображать каждый контроллер:

match 'contact-methods(/:action)' => 'contact_methods'

, но, на мой взгляд, это действительно глупо, и становится грязно, если я вкладываю ресурсы ... Мне не нужно было определять этив качестве пользовательских маршрутов.Есть ли в * 1019 параметр, который автоматически переписывает эти вещи?Я не могу найти один ...

1 Ответ

11 голосов
/ 10 марта 2011

В вашем маршруте.rb

resources "contact-methods", :controller => :contact_methods, :as => :contact_methods

Редактировать: Вы должны указать путь :as => ..., иначе ActionDispatch подбрасывает ...

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