Ruby on rails 雷克流产了!未初始化的常量User::UserGroup
我遇到了一个奇怪的问题,我的rake任务在本地机器上运行,但没有在生产中运行。在生产中尝试相同操作时出现以下错误 雷克流产了!未初始化的常量User::UserGroup 当我在上面运行跟踪时,它得到了以下输出 $RAILS_ENV=生产包执行rake计费:发票--跟踪Ruby on rails 雷克流产了!未初始化的常量User::UserGroup,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,rake-task,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,Rake Task,我遇到了一个奇怪的问题,我的rake任务在本地机器上运行,但没有在生产中运行。在生产中尝试相同操作时出现以下错误 雷克流产了!未初始化的常量User::UserGroup 当我在上面运行跟踪时,它得到了以下输出 $RAILS_ENV=生产包执行rake计费:发票--跟踪 **调用计费:发票(首次) **调用环境(第一次) **执行环境 **执行账单:发票 建筑发票 雷克流产了! 未初始化的常量User::UserGroup /usr/local/rvm/gems/ruby-1.9.3-p327/
**调用计费:发票(首次)
**调用环境(第一次)
**执行环境
**执行账单:发票
建筑发票
雷克流产了!
未初始化的常量User::UserGroup
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active\u record/base.rb:1205:in'compute\u type'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active_record/reflection.rb:162:in`klass'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active_record/associations.rb:2107:in'initialize'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active_record/associations.rb:1984年:在“新”中
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active\u record/associations.rb:1984年:在“build\u join\u association”中
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active_record/associations.rb:1948:in'build'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active_record/associations.rb:1956:in“构建中的块”
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active_record/associations.rb:1955:in'each'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active_record/associations.rb:1955:in'build'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active_record/associations.rb:1852:in'initialize'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active\u-record/relation/query\u-methods.rb:246:in'new'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active\u-record/relation/query\u-methods.rb:246:in'build\u-joins'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active\u record/relation/query\u methods.rb:176:in'build\u arel'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active\u-record/relation/query\u-methods.rb:149:in'arel'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active\u record/relation/batches.rb:51:“在批中查找”
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.0.11/lib/active\u record/relation/batches.rb:20:in'find\u each'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:205:in'call'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:205:在“执行中的块”中
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:200:in'each'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:200:in'execute'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:158:在“调用中的块与调用链”
/usr/local/rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in'mon_synchronize'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:151:在“调用”和“调用链”中
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/task.rb:144:in'invoke'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:116:在“调用任务”中
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:94:在“顶层的块(2层)”中
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:94:in'each'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:94:在“顶层块”中
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:133:在“标准异常处理”中
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:88:in“顶级”
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:66:在“运行中的块”中
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:133:在“标准异常处理”中
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/lib/rake/application.rb:63:in'run'
/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rake-0.9.2.2/bin/rake:33:in`'
/usr/local/rvm/gems/ruby-1.9.3-p327/bin/rake:23:in'load'
/usr/local/rvm/gems/ruby-1.9.3-p327/bin/rake:23:in`'
任务:TOP=>账单:发票
奇怪的是,它在我的本地机器上工作正常。有什么建议吗?你能把失败的rake任务源代码放进去吗 通常您需要这样写(以避免AR出现问题): 描述“我的任务描述” 任务:我的任务名称=>:environment do #任务代码在这里
结束我猜您刚刚添加了一个名为
20120221123456_users.rb的迁移,在其中,您有:
class SomeNameThatsNotUsers < ActiveRecord::Migration
...
class SomeNameThatSnutUsers
当Rails执行迁移时,它希望执行定义类的文件,然后实例化类,并在该类实例上调用up或down。Rails如何知道实例化哪个类?它应该与数字前缀和下划线后面的文件名部分对应,因此对于像20120221123456_users.rb这样的文件名,在我的rake任务中,类名必须是Users
,我正在使用环境变量task:invoices=>:environment doThanks@rorra通过在我的config/production.rb文件中从此config.threadsafe中更改它,解决了这个问题!除非ENV['THREADSAFE']='off',否则此--config.THREADSAFE!,config.dependency\u load=如果rails\u rake\u任务为true。但仍不清楚这将起到什么作用?
class SomeNameThatsNotUsers < ActiveRecord::Migration
...