Carrierwave在操作后替换文件

时间:2018-03-07 09:48:43

标签: ruby-on-rails carrierwave

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

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

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

1 个答案:

答案 0 :(得分:1)

如果您需要用new替换用户头像,您只需要为头像分配一个新文件

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!

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