Carrierwave 操作后替换文件

Carrierwave replace file after manipulate

我是运行一个后台任务,需要将图片转为jpeg并存储。我正在使用 CarrierWave 上传器。这是代码

  task reformat_user: :environment do
    User.all.each do |u|
        u.avatar.manipulate! do |av|
        av.format('jpg')
        av
      end
    end

但是我找不到用新头像替换用户头像的选项

如果需要更换新的用户头像,只需要给头像分配一个新的文件即可

u.avatar = params[:file] # params[:file] contains the file uploaded by user from UI.
u.save!

或者这样

File.open('path_of_new_avatar') do |f|
  u.avatar = f
end
u.save!

希望我正确理解了你的问题。