ruby Rake任务重新处理给定类的所有附件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby Rake任务重新处理给定类的所有附件相关的知识,希望对你有一定的参考价值。

namespace :paperclip do
  desc "Reprocesses all attachments for given class"
  # rake paperclip:reprocess[User,800,'where','some_sort_of_scope_or_filter IS true']
  task :reprocess, [:class, :batch_size, :where, :clause] => :environment do |t, args|
    klass = args[:class].constantize
    batch_size = args[:batch_size]&.to_i || 100
    records = klass.all
    records = klass.send(args[:where], args[:clause]) if args[:where] && args[:clause]

    records.find_in_batches(batch_size: batch_size) do |group|
      PaperclipReprocessWorker.perform_async(klass, group.map(&:id))
    end
  end
end

以上是关于ruby Rake任务重新处理给定类的所有附件的主要内容,如果未能解决你的问题,请参考以下文章

ruby 工人采取一组记录并重新处理所有附件

ruby Rake任务:验证数据库中的所有对象

如何在 Ruby 脚本中运行 Rake 任务?

Rails Guide -- Ruby on Rake

ruby 修复了rake资产:预编译任务

ruby Rails中自定义rake任务