ActiveRecord::Base を継承したクラスをモデルとして作成すると、Rails はそのクラス名に対応したデータベースのテーブルを自動的に探そうとします。対応するデータベースのテーブルを用意しない場合は、self.abstract_class = true
を書く必要があります。ActiveRecord::Base を継承したクラスを作成し、さらにそのクラスを継承させたい場合に self.abstract_class = true
が書かれるようです。
実際に Rails 5.0.1 にて検証しました。例えば、app/models 以下に ActiveRecord::Base
を継承したクラス Animal を作ります。そしてクラス Animal を継承したクラス Dog を作ります。そしてデータベースには dogs というテーブルを作成します。