読者です 読者をやめる 読者になる 読者になる

kitak.blog

Kみたいなエンジニアになりたいブログ

ActiveRecordのモデルクラスの一覧を取得する

Ruby Rails 作業メモ

こんにちは。一日一日暗くなるのが早くなってきました。きたけーです。

最近、「テストデータの用意」で頭の中であれこれ思案していることがあるのですが、どうにもそれを形にするためには道具が少なすぎるような気がするので、使えそうなものを少しずつ集める業を。

今日はActiveRecordのモデルクラスの一覧を取得する方法について調べました。

# Railsの場合に必要。
# Rails以外のActiveRecordをORMに使っているプロジェクトの場合は自前にrequireしてある想定
Dir.glob(File.expand_path("./app/models/*.rb", Rails.root)).each do |f|
  require f
end

# 定数オブジェクトの一覧を取得。
constants = Object.constants.map do |name|
  Object.const_get(name)
end

# この一覧からモデルクラスを絞り込む
constants.select do |c|
  c.class == Class && c < ActiveRecord::Base && !c.abstract_class?
end