Rails 3 autoload_paths против Rails 2 load_paths - PullRequest
2 голосов
/ 14 января 2011

Итак, я понял, что мне нужно изменить config.load_paths на config.autoload_paths, но когда я это сделал, я начинаю видеть это исключение:

Expected /path/to/myapp/app/helpers/controllers/my_helper.rb to define Controllers::MyHelper

В Rails 2 он никогда не жаловался на папку helpers / controllers, но теперь кажется, что он ожидает модуль пространства имен. Я переименовал всех моих помощников, или есть какой-то другой способ, которым это может работать? У меня так много помощников, что я использую помощников / моделей помощников / представлений и помощников / контроллеров, чтобы держать их всех организованными.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 04 сентября 2012

Rails 3 ожидает, что ваши классы будут иметь пространство имен в соответствии с именем файла и иерархией каталогов, поэтому вам придется переименовать вашего помощника в Controllers::MyHelper.

0 голосов
/ 12 марта 2012

Соглашения о присвоении имен файлам в Rails 3 намного строже, чем в Rails 2 по соображениям производительности. Rails 3 ожидает, что файловая структура будет напрямую соответствовать иерархии классов.

Если вы хотите запустить приложение в Rails 3, я бы предложил удалить каталог helpers или добавить Controllers:: в начале каждого объявления класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...