Reducing STI memory usage
if there are many STI child classes, ActiveRecord generates methods for each one individually. This is wasteful in the typical case, since all the children share the same underlying columns.
The small patch included here causes those methods to instead be generated in the parent class, shared amongst all the subclasses.
DO NOT use this if you call methods like
attribute :foo to adjust the typecasting of columns in individual models.