生成Rails环境时,ObjectSpace.trace_object_allocations_start不可用?

时间:2016-06-05 16:51:04

标签: ruby-on-rails ruby

有趣。当RAILS_ENV生产时,trace_object_allocations_start不包括[dhaskin@six plume (master *$%=)]$ rails c Loading development environment (Rails 4.2.6) [1] pry(main)> ObjectSpace.trace_object_allocations_start => nil [2] pry(main)> [dhaskin@six plume (master *$%=)]$ RAILS_ENV=production rails c W, [2016-06-05T09:46:20.872062 #12364] WARN -- : ** [Honeybadger] Unable to start Honeybadger -- api_key is missing or invalid. level=2 pid=12364 Loading production environment (Rails 4.2.6) 2.3.1 :001 > ObjectSpace.trace_object_allocations_start NoMethodError: undefined method `trace_object_allocations_start' for ObjectSpace:Module from (irb):1 from /Users/dhaskin/.rvm/gems/ruby-2.3.1@plume/gems/railties-4.2.6/lib/rails/commands/console.rb:110:in `start' from /Users/dhaskin/.rvm/gems/ruby-2.3.1@plume/gems/railties-4.2.6/lib/rails/commands/console.rb:9:in `start' from /Users/dhaskin/.rvm/gems/ruby-2.3.1@plume/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:68:in `console' from /Users/dhaskin/.rvm/gems/ruby-2.3.1@plume/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:39:in `run_command!' from /Users/dhaskin/.rvm/gems/ruby-2.3.1@plume/gems/railties-4.2.6/lib/rails/commands.rb:17:in `<top (required)>' from bin/rails:4:in `require' from bin/rails:4:in `<main>' 2.3.1 :002 > 方法(和相关方法)。有没有办法改变这个?

{{1}}

(注意这在运行服务器时也会发生,这只是一种简单的演示方式。)

1 个答案:

答案 0 :(得分:0)

事实证明,这些ObjectSpace扩展需要,所以如果我添加

require 'objspace'

它在生产中按预期工作。我最好的猜测是,development中加载的某个宝石正在为我执行此require,这就是为什么我不必明确要求它。