Ruby on rails 向Rails中的现有模型添加验证

Ruby on rails 向Rails中的现有模型添加验证,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想向Rails中的模型添加:presence和:university验证。我正在使用MongoDB和Mongoid gem 我有一个已经在使用的模型,并且数据库中已有记录。我想添加一个新的:字段,然后为该字段添加:presence和:unique的验证 我知道,默认情况下,任何现有记录都只需添加:字段,结果将为null,除非我指定:default 我的问题是,由于我希望这个新的:字段是唯一的,这会不会导致数据库中现有记录的错误为null?我会丢失这些记录还是Rails只是将验证应用于新记录?R

我想向Rails中的模型添加:presence和:university验证。我正在使用MongoDB和Mongoid gem

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

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

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

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

验证的工作原理如下:它们仅在您尝试向数据库写入内容时使用/检查,例如,在您创建新记录或更新记录时。因此,在您的情况下,当您尝试更新旧记录而不添加新的必填字段时,将出现验证错误


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

为什么不迁移数据库以填充这些空值?有效,此时我们只有数千条记录。这很有意义。无论如何,我们可能需要清理数据库。