Я борюсь с множественным созданием маршрута RESTful в Rails 2.3.2.
В частности, у меня есть ресурс с именем sitestatus
. Этот ресурс действительно неисчислим (олень - это олень, а не олень). Когда я определяю его как неисчисляемое в инициализаторе, я получаю несколько помощников, но sitestatuses_path
недоступен (что имеет смысл).
Итак, жестом соответствия я позволил sitestatus
быть исчисляемым. Так что теперь, Rails множит sitestatus
до sitestatuses
(не слишком ужасно), но настаивает на также , преобразуя его в sitestatu
(пропуская 's', смешно и ужасно одновременно) .
Итак, я вынул свой большой молоток и добавил этот код в инициализатор:
ActiveSupport::Inflector.inflections do |inflect|
inflect.plural "sitestatus", "sitestatuses"
inflect.singular "sitestatus", "sitestatus"
end
(Примечание: я пытался использовать irregular
, и он не работал правильно)
Выполнение этого дает мне ожидаемые результаты в консоли, когда я "sitestatus".pluralize
, но когда я пытаюсь позвонить на sitestatuses_path
, на мой взгляд, я получаю
undefined local variable or method 'sitestatuses_path'
Когда я загружаю ActionController :: UrlHelper в консоль и вызываю sitestatus_path(123)
, я получаю sitestatus/123
, как и следовало ожидать. Однако, когда я звоню sitestatuses_path
, я получаю
undefined method 'sitestatuses_path' for #<Object...
Это имя - название модели и контроллера, и оно действительно является единственным логическим именем для обоих, поскольку оно идеально совпадает с бизнес-именем объекта.
Что мне не хватает?