Mongoid 3 + Heroku (MongoHQ) cause Moped::Errors::OperationFailure

后端 未结 3 509
北恋
北恋 2021-01-31 08:32

With Rails 3, after upgrading from Mongoid 2.x to Mongoid 3.x, my Heroku + MongoHQ setup stopped working. Funny thing is, that my development & test frameworks and my whole

相关标签:
3条回答
  • 2021-01-31 08:55

    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.

    0 讨论(0)
  • 2021-01-31 08:56

    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

    0 讨论(0)
  • 2021-01-31 09:14

    Try adding an "options" area to the default session and add "skip_version_check: true" as one of the options.

    Jason MongoHQ

    0 讨论(0)
提交回复
热议问题