class ArchiveFileFeedCache include Mongoid::Document include Mongoid::Timestamps field :content, type: String, default: '' field :uid def self.regenerate_all caches = self.all.to_a time_now = Time.now caches.each do |cache| if cache.invalid_date && cache.invalid_date <= time_now cache.destroy else cache.regenerate end end uids = ArchiveFileFeed.all.pluck(:uid) - caches.collect(&:uid) ArchiveFileFeed.where(:uid.in=> uids).each do |feed| feed.generate_one_cache() end end def regenerate uid = self.uid ArchiveFileFeed.where(uid: uid).each{|v| v.generate_one_cache} rescue nil self.destroy end end