添加验证时,很容易使数据库中的数据无效。
是否有Gem验证数据库中的数据?
加载所有记录并查看它们是否有效应该很容易,但如果已存在某些内容我不想重新发明它。
答案 0 :(得分:0)
不确定是否有宝石执行此操作,因为通常情况下您将拥有无效记录。我可以理解,如果您在创建记录后导入了大量未经验证的数据或创建了验证,您可能希望这样做。
我会这样做作为佣金任务。根据数据库的大小,这可能很昂贵。
namespace :validate do
desc "validates all records"
task :check_all_records do
# get all records
Module.constants.select { |c| (eval c).is_a? Class }.each do |class|
# load 1000 into memory at a time and check if they're valid
class.find_each{ |record| fix_the_record_method unless record.valid? }
end
end
end