Gem carrierwave-upyun 保存到数据库的文件名和上传到又拍云的文件名不一致的问题

w7938940 · September 24, 2015 · Last by w7938940 replied at September 25, 2015 · 1667 hits

代码:

def filename
  if super.present?
    @name = "#{Time.now.to_i}#{rand(10..99)}.#{file.extension.downcase}" if original_filename
  end
end

save方法执行没有报错,数据库里面存的文件名是144308282075.zip,但是又拍云保存的文件名是144308282041.zip,就是最后两位不同。

最后两位 rand(10..99) 是防止同一时间上传的文件重名的问题,去掉 rand(10..99) 之后就完全正常了,不知道是什么问题?

@name = "#{Time.now.to_i}#{rand(10..99)}.#{file.extension.downcase}" if original_filename

改成

@filename ||= "#{Time.now.to_i}#{rand(10..99)}.#{file.extension.downcase}" if original_filename

#1 楼 @huacnlee 产生的原因是因为会进行两次赋值吗?

You need to Sign in before reply, if you don't have an account, please Sign up first.