Ruby on rails 重命名现有CarrierWave文件

Ruby on rails 重命名现有CarrierWave文件,ruby-on-rails,carrierwave,Ruby On Rails,Carrierwave,如何使用CarrierWave重命名现有图像?(这个问题很接近,但实际上并不相同:)例如,如果model.image.url是foo bar jpg如何将文件和相应的数据库字段重命名为foo bar.jpg model.image.create\u版本将创建新文件,但在数据库中不会更改模型的图像字段。Carrierwave的似乎具有重命名支持-特定文件为 在转换文件类型时,主界面中有,但不支持重命名: "This should help with situations where a file

如何使用CarrierWave重命名现有图像?(这个问题很接近,但实际上并不相同:)例如,如果
model.image.url
foo bar jpg
如何将文件和相应的数据库字段重命名为
foo bar.jpg

model.image.create\u版本
将创建新文件,但在数据库中不会更改模型的图像字段。

Carrierwave的似乎具有重命名支持-特定文件为

在转换文件类型时,主界面中有,但不支持重命名:

"This should help with situations where a file has multiple versions,
and at least one of the versions is of a different format than the master version."

我使用了这里描述的技术:

这可能不是最好的方式,但对我来说很有效。我的远程文件恰好是旧文件名/路径

首先,我更改了Carrierwave上传程序,使其具有我想要的新文件名样式。然后我编写了一个rake任务来迭代记录并更新文件,如下所示:

model.remote_image_url = old_image_url
model.save! 
这将再次上载现有文件,根据更新的上载程序设置名称/路径(并重新创建所有版本)。我还没有解决清理旧文件的问题,我不确定如果你的store_目录相同(我的也更改了),这将如何工作


在浏览你的整个表格之前,确保对一些记录进行彻底的测试,这很容易把事情弄得一团糟。请注意,更改存储目录将中断对现有文件的所有查找。

发现此问题,它似乎过时了,但可能会帮助某些人:
https://github.com/stvkoch/carrierwave_single_store