2016-06-05 2 views
0

Интересно. ObjectSpace не включает метод trace_object_allocations_start (и связанные с ним методы), когда RAILS_ENV является производством. Есть ли способ изменить это?ObjectSpace.trace_object_allocations_start недоступно, когда среда Rails является производством?

[[email protected] plume (master *$%=)]$ rails c 
Loading development environment (Rails 4.2.6) 
[1] pry(main)> ObjectSpace.trace_object_allocations_start 
=> nil 
[2] pry(main)> 
[[email protected] 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/[email protected]/gems/railties-4.2.6/lib/rails/commands/console.rb:110:in `start' 
    from /Users/dhaskin/.rvm/gems/[email protected]/gems/railties-4.2.6/lib/rails/commands/console.rb:9:in `start' 
    from /Users/dhaskin/.rvm/gems/[email protected]/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:68:in `console' 
    from /Users/dhaskin/.rvm/gems/[email protected]/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
    from /Users/dhaskin/.rvm/gems/[email protected]/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 > 

(Обратите внимание, это происходит при запуске сервера, а это просто легкий способ продемонстрировать.)

ответ

0

Оказывается, эти ObjectSpace расширения должны быть необходимы, так что если добавить

require 'objspace' 

работает как и ожидалось на производстве. Мое лучшее предположение состоит в том, что какой-то драгоценный камень, загружаемый в development, делал это require для меня, поэтому мне не нужно было его явно требовать.

Смежные вопросы