ActiveRecord::Base.connected?
# Returns true if a connection has already been opened.
def connected?
synchronize { @connections.any? }
end
コメントとソースコードから、ファイルディスクリプタがひとつでも割り当てられていれば true が返りそう。
ActiveRecord::Base.connection.active?
mysql を例に。
def active?
@connection.ping
end
@connection
が nil かどうかはチェックしておらず、実際に ping を打った結果を返しているので、ファイルディスクリプタが存在するだけではなく死活もチェックしているように見える。