ActiveRecord的:: Base.connected?即使DB已关闭,也会返回true

时间:2018-04-26 10:40:44

标签: ruby-on-rails ruby database-connection rails-activerecord

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

1 个答案:

答案 0 :(得分:4)

ActiveRecord::Base.connected?只是告诉你a connection has already been opened。它可能不一定仍然有效。

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