Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 生产中的rails迁移失败,出现“0”;对象不缺少常量User“;_Ruby On Rails_Migration - Fatal编程技术网

Ruby on rails 生产中的rails迁移失败,出现“0”;对象不缺少常量User“;

Ruby on rails 生产中的rails迁移失败,出现“0”;对象不缺少常量User“;,ruby-on-rails,migration,Ruby On Rails,Migration,我在生产模式下迁移数据库时遇到了一个奇怪的问题。 初始的rake db:migrate失败,出现错误“对象不缺少常量用户”,其中用户是我的一个模型,在本次迁移中访问如下: add_column :users, :feedbacks_count, :integer, :default => 0 User.reset_column_information User.all.each do |u| u.update_attribute :feedbacks_count

我在生产模式下迁移数据库时遇到了一个奇怪的问题。 初始的
rake db:migrate
失败,出现错误“对象不缺少常量用户”,其中用户是我的一个模型,在本次迁移中访问如下:

add_column :users, :feedbacks_count, :integer, :default => 0
    User.reset_column_information
    User.all.each do |u|
      u.update_attribute :feedbacks_count, u.feedbacks.length
    end
end
日志显示如下:

对象不缺少常量用户

/var/lib/gems/1.8/gems/activesupport-2.3.4/lib/active\u support/dependencies.rb:417:in `加载\缺少\常数'

/var/lib/gems/1.8/gems/activesupport-2.3.4/lib/active\u support/dependencies.rb:80:in `const_缺少_不是_s3_库中的_

/var/lib/gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb:206:in'const_missing'

/var/lib/gems/1.8/gems/activesupport-2.3.4/lib/active\u support/dependencies.rb:92:in `const_失踪'

/var/lib/gems/1.8/gems/activesupport-2.3.4/lib/active\u support/dependencies.rb:98:in `发送'

/var/lib/gems/1.8/gems/activesupport-2.3.4/lib/active\u support/dependencies.rb:98:in `const_失踪'

./db/migrate//20100823185519\u为计数器缓存添加列。rb:5:in `没有基准的上升

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active_record/migration.rb:282:in `发送'

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active_record/migration.rb:282:in `迁移'

/usr/lib/ruby/1.8/benchmark.rb:293:in `措施'

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active_record/migration.rb:282:in `迁移'

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active\u record/migration.rb:365:in `发送'

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active\u record/migration.rb:365:in `迁移'

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active_record/migration.rb:486:in `迁移'

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active_record/migration.rb:562:in `呼叫'

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active_record/migration.rb:562:in `ddl_事务'

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active_record/migration.rb:485:in `迁移'

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active_record/migration.rb:472:in `各自的

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active_record/migration.rb:472:in `迁移'

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active\u record/migration.rb:400:in `向上

/var/lib/gems/1.8/gems/activerecord-2.3.4/lib/active_record/migration.rb:383:in `迁移'

/var/lib/gems/1.8/gems/rails-2.3.4/lib/tasks/databases.rake:116

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in'call'

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in'execute'

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in'each'

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in'execute'

/var/lib/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 `同步'

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in'invoke_with_call_chain'

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in'invoke'

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `调用_任务'

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `顶级'

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `各自的

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `顶级'

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `标准(例外)(处理)

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `顶级'

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `跑

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `标准(例外)(处理)

/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `跑

/var/lib/gems/1.8/gems/rake-0.8.7/bin/rake:31 /usr/bin/rake:19:in“装载”

/usr/bin/rake:19

我读了很多文章,提到“Object不缺少常量X”,这里的问题主要是通过延迟加载或访问插件来引用模型。 在“添加”列之前要求“user.rb”,或者在访问用户表之前添加一个
user.new
,都不能解决此问题

在迁移失败之前访问迁移中的用户模型也不会引起任何问题

关于这个问题最奇怪的是,一天前我将相同的代码迁移到另一台服务器,使用相同的设置,也在生产环境中,迁移在那里顺利运行

任何帮助都将不胜感激

当然,我不需要用户模型,而是通过

class User < ActiveRecord::Base; end
class用户
这就是要做的一切


仍然需要检查的是,为什么迁移不知道用户模型….

在Amazon S3设置中有些配置错误。配置目录中是否缺少S3配置文件