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