単一テーブルの継承を使用する場合、異なるモデルに固有の列を設定しないように注意する必要がありますか? 各モデルが使用する列を指定する方法はありますか?
1032 次
1 に答える
1
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
ただし、1 つのサブクラスでのみ使用される列が多数ある場合、STI は使用するのに最適な継承モデルではない可能性があります。
于 2009-07-21T16:55:43.293 に答える