在Rails中保存在carrierwave之前如何更改文件名?

时间:2015-03-10 08:32:15

标签: ruby-on-rails carrierwave

在控制器中我有:

ext = File.extname(params[:file].original_filename)
 basename = File.basename(params[:file].original_filename, ext)
 time = Time.now.to_i

 for_hash = Digest::MD5.hexdigest([basename, time].join(''))[0..5]
 new_file_name = [for_hash, ext].join('')

并将新文件名保存到数据库中。但是这个代码艺术如何在保存之前更改文件夹中的文件名?

1 个答案:

答案 0 :(得分:2)

在您的上传器文件中,您可以更改文件名

class ImageUploader < CarrierWave::Uploader::Base
   def filename
     "#{model.id}.jpg" # to name file with their id
   end
 ....
end

我很久以前就做过了,我想是就是这样。