ActiveRecord::Base.connected?即使 DB 关闭也返回 true

Mag*_*ode 3 ruby database-connection ruby-on-rails rails-activerecord

一旦与 DB 建立连接,ActiveRecord::Base.connected?即使 DB 关闭,调用也会返回 true。这可以通过启动 rails 应用程序和数据库容器来重现,然后在应用程序启动并运行后终止数据库容器rails console并检查ActiveRecord::Base.connected?.

Mag*_*ode 8

ActiveRecord::Base.connected?只是告诉您连接已经打开。它可能不一定仍然处于活动状态。

要检查连接当前是否处于活动状态,请调用ActiveRecord::Base.connection.active?。这实际上会 ping 数据库服务器。