使用单表继承时,是否必须小心不要填充特定于不同模型的列?有没有办法指定每个模型使用哪些列?
问问题
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
尽管如果您有很多列仅由一个子类使用,那么 STI 可能不是最好的继承模型。
于 2009-07-21T16:55:43.293 回答