Mongoid 3 + Heroku (MongoHQ) cause Moped::Errors::OperationFailure
You will need to use Ruby 1.9.3. See Mongoid documentation here and Heroku documentation here on how to use 1.9.3.
I was also getting similar errors, and I changed my gemfile to include ruby '1.9.3'
and everything worked as expected again.
Edit:@herb pointed out that you need the latest version of bundler for this to work (gem install bundler --pre
). Otherwise, ruby '1.9.3'
in your Gemfile will not work.
Try adding an "options" area to the default session and add "skip_version_check: true" as one of the options.
JasonMongoHQ
As a workaround, hardcoding the uri from heroku config seems to do the trick.
ex:
production: sessions: default: uri: "mongodb://heroku:xxxx@domain.mongohq.com:000/appyyyy" options: skip_version_check: true safe: true
I'm guessing the nilclass error was because <%= ENV['MONGOHQ_URL'] %> was returning nil