😊
ActiveRecordを用いて全テーブルのレコード数を取得する
全テーブルのレコード数を取得したかったので、下記のように ActiveRecord を使って取得した
tables = ActiveRecord::Base.connection.tables
models = tables.map(&:classify).map(&:safe_constantize).compact
models.each do |model|
puts "#{model}: #{model.count}"
end
ActiveRecord::Base.connection.tables
でテーブル名が入った配列を取得します
tables.map(&:classify)
でテーブル名からモデル名へ変換
map(&:safe_constantize)
で文字列をクラス化、クラスが見つからない場合は nil を返すのでcompact
で nil を除外します
Discussion