我正在尝试重命名上传的文件,这是我在image_uploader.rb上的代码:
def filename
if !cached? && file.present?
new_filename = 'wow.jpg'
new_path = File.join(File.dirname(file.path), new_filename)
new_sf = CarrierWave::SanitizedFile.new(new_path)
cache!(new_sf)
recreate_versions!
new_filename
else
super
end
end
在做
recreate_versions!
我遇到了这个错误:
NoMethodError:nil:NilClass的未定义方法“ body”
答案 0 :(得分:0)
如果要重命名已上载和存储的文件,则可以使用move_to
方法(documentation)。
让我们假设您有一个User
型号,其中安装了avatar
的载波。然后,从Rails控制台中,您可以调用:
User.find(1).avatar.path
=> /path/to/avatar/1/image.jpg
User.find(1).avatar.file.move_to("/path/to/avatar/1/new_image_name.jpg")
User.find(1).avatar.path
=> /path/to/avatar/1/new_image_name.jpg
不需要自定义代码,您的问题应该得到解决。