例如,我最近在用户模型中添加了'地址'字段。他们正在通过存在验证。因此,现在,当我去更新其他属性时,例如,我无法保存用户,因为它具有无效的字段(地址仍然空白)。
您是否只需要用空白字符串或其他东西迁移数据?
如何处理此操作的方法?
处理此问题的一种方法是填充创建它的迁移中的新字段。这样,您可以确保数据库中的所有内容都根据模型有效。该指南对此有一些指导 - 有几个陷阱。
另一种方法是指定验证仅在创建上运行,而不是在更新上运行,并且使用:on
选项运行。看起来像:
validates :address, :presence => true, :on => :create
这样,任何新用户都必须具有地址设置,但是您仍然可以在现有用户上编辑其他属性。
我建议您每次添加新字段并在其上进行验证时进行迁移。它将保持数据完整性和一致性。
如果您确实想做一个技巧,在保存时有条件地将" validate:false"添加条件,将" validate:false"添加,在修改现有记录时为地址字段添加空白值,所有这些都是您可以使用的技巧。p>我还建议,当您添加地址,创建地址模型并共享需要它的其他模型时,而不仅仅是将字段添加到模型中。这将使您的验证更加灵活。