【问题标题】:Is there a Gem that checks that all DB records are valid?是否有一个 Gem 可以检查所有数据库记录是否有效?
【发布时间】:2016-02-23 21:36:42
【问题描述】:

添加验证时,很容易使数据库中已经存在的数据无效。

是否有验证数据库中数据的 Gem?

加载所有记录并查看它们是否有效应该很容易,但如果某些东西已经存在,我不想重新发明它。

【问题讨论】:

    标签: ruby-on-rails rubygems


    【解决方案1】:

    不确定是否有 gem 可以执行此操作,因为您拥有无效记录的情况并不常见。我可以理解,如果您在没有验证的情况下导入了大量数据或在创建记录后创建了验证,您可能希望这样做。

    我会把它作为一个 rake 任务来做。根据您的数据库的大小,这可能会很昂贵。

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 2014-04-12
      • 2021-05-24
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      相关资源
      最近更新 更多