If you are working with Rails 3 and Mongoid, you’re likely to upgrade to
mongoid-2.0.0.beta6. That’s okay, but you will run into a few problems. Among others, one will be:
Database should be a Mongo::DB, not NilClass
Another, Mongoid-related problem is the error
uninitialized constant OrderedHash.
Luckily, these problems can be solved quite easily.
The first thing you need to do is make sure you use the right version of
bson_ext. Beta 6 requires you to run
bson_ext-1.0.1 or you’ll get the
OrderedHash error. Okay, with that out of the way, let’s focus on the MongoDB errors.
The problem is that Mongoid is accessed/used before it is properly initialized. To resolve this issue, add the following line to your other requires at the top of
With that, you initialize Mongoid correctly. Hope it helps.
Update: I also ran into
keys must be strings or symbols errors. This is now a known issue with
mongoid-2.0.0.beta6 and has been fixed in
master. If you are using Bundler (you are, aren’t you?) then you can use the master branch instead of the gem:
# gem 'mongoid', '2.0.0.beta6' gem 'mongoid', :git => 'http://github.com/durran/mongoid.git'
Want to keep reading and learn more? I've got you
covered with a hand picked selection of awesome books.