更改 CarrieWave 模型的文件名

Change file name of CarrieWave model

我有一个像这样的 Rails 模型,使用继承 CarrierWave::Uploader::Base 的 ImageUploader。

class Image < ApplicationRecord
  mount_uploader :file, ImageUploader
end

我的应用程序中的一个错误导致 images.file 列值与 GCS 中的实际文件名不匹配,所以我想这样做:

Image.first.file = "fixed_file_name.jpg"
Image.save

但是 Image#file 不是 return 它的 file 列值,而是 returns CarrierWave::Uploader::Base 实例。

如何更新文件名,就像 SQL 中的 UPDATE ... SET ... 一样?

大概是这样的:User.where(id: 1).update_all(avatar: 'x.png')