在Rails中为现有模型添加验证

时间:2012-09-17 15:52:03

标签: ruby-on-rails ruby

我想在Rails中为模型添加:presence和:uniqueness validation。我正在使用MongoDB和Mongoid gem。

我有一个已经在使用的模型,并且在DB中有现有记录。我想添加一个新的:字段,然后为该字段添加验证:presence和:uniqueness。

我知道默认情况下,任何现有记录都只会添加:field,结果将为null,除非我指定:default。

我的问题是,因为我希望这个新的:字段是唯一的,这会导致数据库中现有记录的错误是否为空?我是否会丢失这些记录,或者Rails是否只将验证应用于新记录?

1 个答案:

答案 0 :(得分:2)

Rails / AciveRecord 不会忽略或删除您的旧记录......

验证的工作方式如下:当您尝试将内容写入数据库时​​,它们仅用于/检查,例如:当您创建新记录或更新记录时。因此,在您尝试更新旧记录时,如果不添加新的必填字段,则会出现验证错误。

我建议您在添加新字段时尝试清理数据库(意味着为新的必填字段添加旧记录的合理默认值)。