Ruby on rails 无法在生产环境中创建模型对象

Ruby on rails 无法在生产环境中创建模型对象,ruby-on-rails,ruby,ruby-on-rails-3,amazon-web-services,Ruby On Rails,Ruby,Ruby On Rails 3,Amazon Web Services,我在rails中创建了一个模型类,并在本地开发和生产环境中进行了测试。 然而,我将rails应用程序部署到AWS,发现了一个非常奇怪的问题。 我不能再使用我的模型了 比如说, Loading production environment (Rails 4.1.6) Mgmt_Server :001 > defined?(Game) => "constant" Mgmt_Server :002 > Game.create NoMethodError: undefined met

我在rails中创建了一个模型类,并在本地开发和生产环境中进行了测试。 然而,我将rails应用程序部署到AWS,发现了一个非常奇怪的问题。 我不能再使用我的模型了

比如说,

Loading production environment (Rails 4.1.6)
Mgmt_Server :001 > defined?(Game)
=> "constant" 
Mgmt_Server :002 > Game.create
NoMethodError: undefined method `[]' for nil:NilClass ... etc
自动气象站的发展

Loading development environment (Rails 4.1.6)
Mgmt_Server :004 > Game.create!
(0.1ms)  BEGIN
SQL (0.2ms)  INSERT INTO `games` (`created_at`, `updated_at`) VALUES   ('2015-05-21 08:41:16', '2015-05-21 08:41:16')
(2.0ms)  COMMIT
=> #<Game id: 2, name: nil, description: nil, platform: nil, state: nil, exe: nil, launch_command: nil, terminate_command: nil, waiting_queue_size: nil, allow_play: false, created_at: "2015-05-21 08:41:16", updated_at: "2015-05-21 08:41:16"> 
加载开发环境(Rails 4.1.6)
管理服务器:004>游戏。创建!
(0.1ms)开始
SQL(0.2ms)插入到“游戏”(“创建于”,“更新于”)值中('2015-05-21 08:41:16','2015-05-21 08:41:16')
(2.0ms)提交
=> # 
根本不知道根本原因。。。 我很确定db站点没有问题,因为我使用了相同的db进行测试

game.rb

class Game < ActiveRecord::Base
  has_many :game_defaults
  has_many :game_save
end
类游戏
回溯

ubuntu@ip-10-0-0-21:~/MgmtService/Mgmt_Server/config$ rails c production
Loading production environment (Rails 4.1.6)
Mgmt_Server :001 > Game
 => Game (call 'Game.connection' to establish a connection) 
Mgmt_Server :002 > Game.all
 => #<ActiveRecord::Relation []> 
Mgmt_Server :003 > Game.create
NoMethodError: undefined method `[]' for nil:NilClass
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/beefcake-1.0.0/lib/beefcake.rb:229:in `block in initialize'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/beefcake-1.0.0/lib/beefcake.rb:228:in `each'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/beefcake-1.0.0/lib/beefcake.rb:228:in `initialize'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.6/lib/active_record/inheritance.rb:30:in `new'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.6/lib/active_record/inheritance.rb:30:in `new'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.6/lib/active_record/persistence.rb:33:in `create'
    from (irb):3
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/railties-4.1.6/lib/rails/commands/console.rb:90:in `start'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/railties-4.1.6/lib/rails/commands/console.rb:9:in `start'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/railties-4.1.6/lib/rails/commands/commands_tasks.rb:69:in `console'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/railties-4.1.6/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/railties-4.1.6/lib/rails/commands.rb:17:in `<top (required)>'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
... 1 levels...
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:241:in `load'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:241:in `block in load'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:241:in `load'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/commands/rails.rb:6:in `call'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/command_wrapper.rb:38:in `call'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application.rb:183:in `block in serve'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application.rb:156:in `fork'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application.rb:156:in `serve'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application.rb:131:in `block in run'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application.rb:125:in `loop'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application.rb:125:in `run'
    from /home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application/boot.rb:18:in `<top (required)>'
    from /home/ubuntu/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/ubuntu/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
ubuntu@ip-10-0-0-21:~/MgmtService/Mgmt_Server/config$rails c production
加载生产环境(Rails 4.1.6)
管理服务器:001>游戏
=>游戏(调用“Game.connection”建立连接)
管理服务器:002>Game.all
=> # 
管理服务器:003>Game.create
NoMethodError:nil类的未定义方法“[]”
from/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/beefcake-1.0.0/lib/beefcake.rb:229:in'block in initialize'
from/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/beefcake-1.0.0/lib/beefcake.rb:228:in'each'
from/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/beefcake-1.0.0/lib/beefcake.rb:228:in'initialize'
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.6/lib/active\u record/heritance.rb:30:in“new”
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.6/lib/active\u record/heritance.rb:30:in“new”
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.6/lib/active\u record/persistence.rb:33:在“创建”中
来自(irb):3
从/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/railties-4.1.6/lib/rails/commands/console.rb:90:in'start'
从/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/railties-4.1.6/lib/rails/commands/console.rb:9:in'start'
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/railties-4.1.6/lib/rails/commands/commands\u tasks.rb:69:在“控制台”中
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/railties-4.1.6/lib/rails/commands/commands\u tasks.rb:40:in“run\u command!”
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/railties-4.1.6/lib/rails/commands.rb:17:in`'
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active\u support/dependencies.rb:247:in'require'
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active\u support/dependencies.rb:247:in`block in require'
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active\u support/dependencies.rb:232:in'load\u dependency'
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active\u support/dependencies.rb:247:in'require'
... 1级。。。
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active\u support/dependencies.rb:241:in'load'
from/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active\u support/dependencies.rb:241:in`block in load'
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active\u support/dependencies.rb:232:in'load\u dependency'
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.6/lib/active\u support/dependencies.rb:241:in'load'
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/commands/rails.rb:6:in'call'
from/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/command_wrapper.rb:38:in'call'
from/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application.rb:183:in'block in service'
from/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application.rb:156:in'fork'
from/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application.rb:156:in'serve'
from/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application.rb:131:in'block in run'
from/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application.rb:125:in'loop'
from/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application.rb:125:in'run'
来自/home/ubuntu/.rvm/gems/ruby-2.1.2/gems/spring-1.3.6/lib/spring/application/boot.rb:18:in`'
来自/home/ubuntu/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
来自/home/ubuntu/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
TKS

(注)

在我对游戏进行一些更改之后。rb=>

class Game < ActiveRecord::Base
  has_many :game_defaults
  #has_many :game_save   (remove this line)
end
类游戏
我可以在production env中成功创建模型

ubuntu@ip-10-0-0-21:~/MgmtService/Mgmt_Server/app/models$ rails c production
Loading production environment (Rails 4.1.6)
Mgmt_Server :001 > Game.create
 => #<Game id: 1, name: nil, description: nil, platform: nil, state: nil, exe: nil, launch_command: nil, terminate_command: nil, waiting_queue_size: nil, allow_play: false, created_at: "2015-05-21 10:05:42", updated_at: "2015-05-21 10:05:42"> 
ubuntu@ip-10-0-0-21:~/MgmtService/Mgmt_Server/app/models$rails c production
加载生产环境(Rails 4.1.6)
管理服务器:001>Game.create
=> # 

TKS

使用定义的
DISABLE_SPRING=1
环境变量尝试相同的操作,它似乎调用了AR,而AR又调用了beefcake,如果没有后续序列化游戏保存对象的标头数据,则无法初始化


如果它有助于重新部署
——无需开发测试

什么是回溯?你在那里运行过迁移吗?当然,我会多次删除和迁移。你能超过1吗。回溯和2。游戏类代码?第一点很关键,什么是牛排?这就是问题所在。请看一下导致问题的beefcake中的线路。