Дефис ресурсов в рельсах 3 маршрута

Как можно использовать дефис в URL-адресах ресурсов? Например: /my-model/ или /my-model/1. Если я определяю маршрут как resources :"my-model", я получаю синтаксическую ошибку, потому что rails генерирует метод def hash_for_my-models_url(options = nil).

Ответ 1

Я нашел решение:

  resources "my-models", :as => :my_models, :controller => :my_models

UPDATE: Как сказал Тимо Салоранта в комментарии, он работает без :controller => :my_models в последних версиях Rails 3.

Ответ 2

Вы можете использовать опцию :as для настройки находчивых маршрутов с переносимыми URL-адресами:

map.resources :my_model, :as => "my-model"

приводит к

my_model_index GET /my-model(.:format) {:action=>"index",
  :controller=>"my_model"}

... и т.д...

Ответ 3

Вы пробовали собственный маршрут?

map.connect "/my-model/:id", :controller => 'my-model-controller', :action => 'read'

Это вызовет метод 'read' 'my-model-controller.rb'.