在Heroku上使用MongoLab + Rails 4 + Mongoid时出现500内部服务器错误

sko*_*ozz 2 ruby-on-rails heroku mongoid mlab

问题: Heroku在部署并从'master'运行后回应我这个错误:

12月31日10:35:49 rsappqqsag app/web.1:4ms完成500内部服务器错误

12月31日10:35:49 rsappqqsag app/web.1:4ms完成500内部服务器错误

12月31日10:35:49 rsappqqsag app/web.1:Optionable :: Unknown(:safe是一个未知选项.有效选项是:: write,:read,:database,:max_retries,:pool_size,:retry_interval,:refresh_interval ,:down_interval,:ssl,:timeout,:instrumenter.):

12月31日10:35:49 rsappqqsag app/web.1:app/controllers/bing_controller.rb:16:在'index'中

12月31日10:35:49 rsappqqsag app/web.1:Optionable :: Unknown(:safe是一个未知选项.有效选项是:: write,:read,:database,:max_retries,:pool_size,:retry_interval,:refresh_interval ,:down_interval,:ssl,:timeout,:instrumenter.):

12月31日10:35:49 rsappqqsag app/web.1:app/controllers/bing_controller.rb:16:在'index'中

我的堆栈:

  • Ruby 2.0.0
  • Rails 4.0.2
  • Mongoid

我的Gemfile: http ://pastebin.com/h9SiezJ8

我的mongoid.yml: http ://pastebin.com/TW8pswaw

我已经完成了devcenter.heroku.com/articles/mongolab的所有步骤,但没有.rails的应用程序没问题,正常运行,但是当我调用与Mongo连接的函数时,响应500服务器错误.

感谢你们.

sko*_*ozz 5

Stennie用上面的评论解决了这个问题:

从提到":safe是一个未知选项"的错误中,我怀疑服务器上有一个比应用程序代码所期望的更新版本的Mongoid.:Mongooid 4.0.0中删除了:safe选项,替换为:write.

解决方案(在我的情况下):删除和/或更改mongoid.yml

production:
  sessions:
    default:
      uri: <%= ENV['MONGOLAB_URI'] %>
      options:
        safe: true
        skip_version_check: true
Run Code Online (Sandbox Code Playgroud)

production:
  sessions:
    default:
      uri: <%= ENV['MONGOLAB_URI'] %>
Run Code Online (Sandbox Code Playgroud)