これ僕.com:行動分析学マニアがおくる行動戦略

意図と行動のギャップから生じる「不自由さ」への挑戦。果たして僕たちに自由はあるのか?

ActiveRecordを継承するとき

class MyBaseRecord < ActiveRecord::Base
end

ってクラスを作って

class Hoge < MyBaseRecord
end

ってやって動かしてみたら、"my_base_records"ってテーブルがねーぞゴルァって怒られた。調べて見ると、

ここで、

self.abstract_class = true

としているのは、TypoModel が抽象クラスで、対応するテーブルが存在しないことを指定するためです。この記述がないと、「typo_models なんてテーブルはないぞ」というエラーが出ます。

ということが分かった。早速、

class MyBaseRecord < ActiveRecord::Base
  self.abstract_class = true
end

とすると、上手くいった。ふむふむ。