Рельсы неинициализированные постоянные в производстве - PullRequest
2 голосов
/ 22 декабря 2010

У меня странная проблема.В разработке этой проблемы не существует, но в производственной программе Rake выдает это сообщение об ошибке «Неинициализированная постоянная программа»

«Программа» - это модель активной записи, и она здесь, она находится в файле схемы ив папке app / model.

Я выполняю это следующим образом: rake import: xml RAILS_ENV = production.В чем может быть проблема?Ниже приведена полная трассировка стека

rake import:xml RAILS_ENV=production --trace
(in /usr/mobloom/www/htdocs/remindertest)
** Invoke import:xml (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute import:xml
rake aborted!
uninitialized constant Program
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2503:in `const_missing'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:92:in `const_missing'
/usr/mobloom/www/htdocs/remindertest/lib/tasks/import_assets.rake:18
/usr/mobloom/www/htdocs/remindertest/lib/tasks/import_assets.rake:9:in `each'
/usr/mobloom/www/htdocs/remindertest/lib/tasks/import_assets.rake:9
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19

Строка 18: program = Program.find (: first,: условие => ['programident =?', Широковещательная рассылка ['PROGRAM'] ['PROGRAMME_ID']])

Ответы [ 2 ]

5 голосов
/ 22 декабря 2010

Попробуйте

require 'app/models/program'

или, если вам нужно большинство ваших моделей

Rails.application.eager_load!

Рейк не загружает ваши модели.

См. Хорошее объяснение здесь Рейку 3 не удается найти модель в производстве

0 голосов
/ 22 декабря 2010

Вы, вероятно, забыли зависеть от своей задачи: среда.

task :xml => :environment do
  ...code here...
end

РЕДАКТИРОВАНИЕ!Вероятно, не правильный ответ, посмотрите на ответ с нетерпеливой загрузкой.

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