Что касается Rails, каждый столбец может быть установлен в каждом подклассе. Вы можете добавить логику к своим моделям подклассов, чтобы предотвратить установку определенных полей, но не существует автоматического способа сделать это. Вы могли бы, вероятно, реализовать это имеет фильтр before_save
.
class MySubModel < MyModel
UNUSED_FIELDS = %w{ field_x field_y field_z }
def before_save
UNUSED_FIELDS.each {|f| self.send("#{f}=", nil)}
end
end
Хотя, если у вас много столбцов, которые используются только одним подклассом, STI, вероятно, не лучшая модель наследования.