Как можно использовать дефис в URL ресурсов? Например: /my-model/ или /my-model/1. Если я определяю маршрут как resources :"my-model", я получаю синтаксическую ошибку, потому что rails генерирует метод def hash_for_my-models_url(options = nil).
/my-model/
/my-model/1
resources :"my-model"
def hash_for_my-models_url(options = nil)
Я нашел решение:
resources "my-models", :as => :my_models, :controller => :my_models
ОБНОВЛЕНИЕ: Как сказал Тимо Салоранта в комментарии, он работает без :controller => :my_models в последних версиях Rails 3.
:controller => :my_models
Вы можете использовать опцию :as для настройки ресурсоемких маршрутов с дефисированными URL:
:as
map.resources :my_model, :as => "my-model"
Результаты в
my_model_index GET /my-model(.:format) {:action=>"index", :controller=>"my_model"}
... и т.д ...
Вы пробовали собственный маршрут?
map.connect "/my-model/:id", :controller => 'my-model-controller', :action => 'read'
Это вызвало бы метод read для my-model-controller.rb.