一旦建立了与DB的连接,即使DB关闭,调用ActiveRecord::Base.connected?
也会返回true。这可以通过启动rails应用程序和数据库容器来重现,然后在应用程序启动并运行rails console
并检查ActiveRecord::Base.connected?
的值后终止数据库容器。
答案 0 :(得分:4)
ActiveRecord::Base.connected?
只是告诉你a connection has already been opened。它可能不一定仍然有效。
要检查连接当前是否处于活动状态,请致电ActiveRecord::Base.connection.active?
。这实际上会ping数据库服务器。