Приложение RoR прекрасно работает локально, но выдает ошибки при использовании from / lib при запуске на Heroku - PullRequest
1 голос
/ 31 августа 2010

Мое приложение RoR отлично работает при локальном запуске, но когда я запускаю его на Heroku, в этой строке появляются ошибки:

my_reader = Docreader.new(params[:doc])

Ошибка:

NameError (uninitialized constant NotesController::Docreader):

Docreader.rb находится в папке lib

Я пытался heroku restart, но это не помогло. Что я делаю неправильно? Спасибо за чтение.

Ответы [ 2 ]

1 голос
/ 31 августа 2010

Вероятным виновником является заглавная буква D в Docreader.rb. Вы должны убедиться, что он назван docreader.rb - все строчные буквы. Heroku использует чувствительную к регистру файловую систему, поэтому файл со смешанным регистром будет работать локально в OS X или Windows, но не в Heroku.

В общем случае не рекомендуется использовать буквы верхнего регистра в именах файлов в Ruby on Rails (а нижний регистр также является стандартом де-факто в Ruby), поскольку код автоматической загрузки Rails всегда использует строчные буквы. *

0 голосов
/ 06 сентября 2011

У меня была похожая проблема с запуском модуля на Heroku.В дополнение к соглашению об именах автозагрузки, установленному @wuputah, я обнаружил, что код модуля должен быть необходим из-за предположения о поточной безопасности, сделанного производственной средой Rails на Heroku (даже если это было закомментировано в моем файле production.rb.) Как только я «потребовал» файл модуля перед вызовом «включить» в модуле, все начало работать.

Пожалуйста, взгляните на эту прекрасную статью на тему правильной загрузки модулей в Heroku:

http://www.williambharding.com/blog/technology/rails-3-autoload-modules-and-classes-in-production/

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