【问题标题】:ActiveRecord::ConnectionNotEstablished (ActiveRecord::ConnectionNotEstablished)ActiveRecord::ConnectionNotEstablished (ActiveRecord::ConnectionNotEstablished)
【发布时间】:2012-04-05 18:42:39
【问题描述】:

我有一个使用 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"

【问题讨论】:

  • 你的Application.rb中是否删除了ActiveRecord的需求?
  • 我已经更新了我的答案。删除 Active Record 就够了吗?
  • 您在哪里需要 active_record ?你需要删除这个要求

标签: ruby-on-rails mongodb heroku mongoid


【解决方案1】:

在你的 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"

【讨论】:

  • 谢谢它帮助我。我评论了需要“active_record/railtie”和一些来自environments/*.rb的行
  • 您也需要评论 rails/all 的要求,因为您的答案中没有这样做。我用这些信息更新我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
  • 2014-03-16
相关资源
最近更新 更多