2012-03-24 2 views
7

У меня есть нечетная проблема:неопределенных локальный переменные или метод `new_media_path» - ресурсы ресурсы

После запуска сервера я получил эту ошибку:

undefined local variable or method `new_media_path' 

Чтобы восстановить это я должен пойти в routes.rb и изменить

resources :media 

в

resource :media 

и снова

resources :media 

Это раздражает. Любые идеи для решения этой проблемы?

ответ

5

Вы должны попробовать new_medium_path потому media это множественная форма medium

При запуске rake routes вы увидите все доступные маршруты.

+3

..или изменить маршруты к ресурсам: medias. Не правильный английский, но это даст вам «медиа» как синглар, если вам нравится – Shaun

3

Вы также можете сообщить рельсы о правильном плюрализации с использованием класса Inflector. Он обрабатывает большинство работ отлично, но нестандартные плюрализации, такие как «медиа», не всегда заранее определены. Для того, чтобы добавить свой собственный, редактировать конфигурации/инициализаторами/inflections.rb, и добавить в конце:

ActiveSupport::Inflector.inflections do |inflect| 
inflect.irregular 'medium', 'media' 
end 

Это должно позволить Rails обрабатывать все множественное число/единственное вещество - обратите внимание, это будет влиять на что он думает DB имена таблиц будут так же, поэтому он будет ожидать, что модель будет класса Medium, и имя таблицы будет СМИ

чтобы включить множественного и единственного числа в одно и то же (то есть всегда «СМИ»), использование:

ActiveSupport::Inflector.inflections do |inflect| 
inflect.uncountable 'media' 
end 
Смежные вопросы