ActiveSupport Dependencies load eats MultiJson.load?

I can’t quite figure out what’s going on here, it seems like if this were actually a problem someone else would have run into it and I’d have better luck googling for it, since MultiJson is so popular but…

Rails 3.2.9. Is ActiveSupport::Dependencies doing something weird with a #load method defined on all objects, such that it conflicts with other objects #load method?

MultiJson wants you to use MultiJson.load to parse JSON.

But when I try… somehow some activesupport load is eating it instead. I get an error “Could not load file [big json string]”, and this odd stacktrace:

activesupport-3.2.9/lib/active_support/dependencies.rb:245:in `load’

activesupport-3.2.9/lib/active_support/dependencies.rb:245:in `block in load’",

active_support/dependencies.rb:236:in `load_dependency’",

activesupport-3.2.9/lib/active_support/dependencies.rb:245:in `load’",

line to my app code that’s actually calling MultiJson.load, but then the next line up is an active_support load instead, what now?

Anyone have any idea how I would debug this further, or what might be going on? Any known problems with ActiveSupport adding a ‘load’ which kills other gems loads?


Indeed, nobody else reported the problem because there is no problem.

Due to weirdnesses of my Gemfile.lock, I was using a really old version of multi_json without realizing it, one that lacked the #lock method.

(Had an old version of Capybara in my gemfile.lock, which locked multi_json dependency to an old version of multi_json, which kept multi_json from ever updating, bah).