ActiveRecord :: ConnectionNotEstablished(ActiveRecord :: ConnectionNotEstablished)

时间:2012-03-21 08:58:27

标签: ruby-on-rails mongodb heroku mongoid

我有一个与mongodb一起使用的Rails应用程序。我想将它部署到Heroku,但得到错误:

       Using sass-rails (3.2.5)
       Installing sqlite3 (1.3.5) with native extensions Unfortunately, a fatal error has occurred.
Please report this error to the Bundler issue tracker at https://github.com/carlhuda/bundler/issues
so that we can fix it. Thanks!
       /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions':
 ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

好吧,我在我的Gemfile中评论了sqlite-gem:

# gem 'sqlite3'

现在它在heroku上正确部署,但是当我正在使用应用程序时出错:

[2012-03-21 12:53:46] INFO  WEBrick::HTTPServer#start: pid=9896 port=3000
MONGODB [DEBUG] Logging level is currently :debug which could negatively impact client-side performance. You should set your logging level no lower than :info in production.
MONGODB (140ms) admin['$cmd'].find({:ismaster=>1}).limit(-1)
MONGODB (131ms) some['$cmd'].find({:getnonce=>1}).limit(-1)
MONGODB (131ms) some['$cmd'].find({"authenticate"=>1, "user"=>"some", "nonce"=>"92a826e37bab5cd5", "key"=>"524d2de26fd6416b7cb0cddc2f496a2c"}).limit(-1)
MONGODB (131ms) some['$cmd'].find({:getnonce=>1}).limit(-1)
MONGODB (132ms) some['$cmd'].find({"authenticate"=>1, "user"=>"some", "nonce"=>"6a49c4f59de3294d", "key"=>"f081eb178e341e88d014c045b45ad633"}).limit(-1)


Started GET "/docs" for 127.0.0.1 at 2012-03-21 12:53:53 +0400

ActiveRecord::ConnectionNotEstablished (ActiveRecord::ConnectionNotEstablished):
  activerecord (3.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:374:in `retrieve_connection'

如何解决我的问题?

更新

我在application.rb中包含了下一行,所以它看起来像:

require 'rails/all'

require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "rails/test_unit/railtie"

1 个答案:

答案 0 :(得分:7)

在你的config / application.rb中你需要评论ActiveRecord的要求:

# require "active_record/railtie"

如果您需要require 'rails/all'之前的所有导轨,则需要将其拆分为所需的所有导轨。例如在我的应用程序中使用Mongoid而不是ActiveRecord而不是ActionResources我只代替'rails / all':

# require 'rails/all'
# require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "sprockets/railtie"