Ruby on rails 生产中的Rails未初始化常量

Ruby on rails 生产中的Rails未初始化常量,ruby-on-rails,passenger,rake-task,Ruby On Rails,Passenger,Rake Task,我有个奇怪的问题。在开发中不存在这个问题,但在生产中,rake向我抛出这个错误消息“未初始化的常量程序” “程序”是一个活动记录模型,它在那里,在模式文件中,在app/model文件夹中 我像这样执行rake import:xml RAILS\u ENV=production。有什么问题吗?下面是完整的堆栈跟踪 rake import:xml RAILS_ENV=production --trace (in /usr/mobloom/www/htdocs/remindertest) ** Inv

我有个奇怪的问题。在开发中不存在这个问题,但在生产中,rake向我抛出这个错误消息“未初始化的常量程序”

“程序”是一个活动记录模型,它在那里,在模式文件中,在app/model文件夹中

我像这样执行rake import:xml RAILS\u 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,:conditions=>['programident=?',broadcast['program']['program\u ID']])

您可能忘记了将任务依赖于:环境

task :xml => :environment do
  ...code here...
end
编辑!可能不是正确的答案。带着热切的心情看看答案。

试试看

require 'app/models/program'
或者如果你需要你的大多数模型

Rails.application.eager_load!
Rake并不急于加载您的模型


请看这里的详细说明

我们可以看一下stacktrace吗?您认为这是一项什么任务?你能把它放在这里吗?-1因为如果你看一下发布的日志,你会看到环境被加载了是的,我意识到,这就是为什么我编辑了我的帖子并更新了你的。你想让我删除我的答案,然后再下载我自己吗?谢谢你的答案,但正如David所说,环境正在加载。这不是rails 3,而是2.3.8,这只是我的prod环境中的一个问题,不是开发中的问题