def store_dir
"#{Setting.attachments_path}/#{model.assetable_type.underscore}/#{Digest::MD5.hexdigest(model.assetable_id.to_s)[0..2]}"
end
def filename
if super.present?
# current_path 是 Carrierwave 上传过程临时创建的一个文件,有时间标记,所以它将是唯一的
@name ||= Digest::MD5.hexdigest(File.dirname(current_path))
"#{@name}.#{file.extension.downcase}"
end
end
我这的设置,其实 filename 就是 rubychina 的方法,store_dir 对 id 取 md5 前三位避免单目录文件数量过多对性能有影响