Rails 3 - Tempfile路径?

AnA*_*ice 18 ruby-on-rails ruby-on-rails-3

我有以下内容:

attachments.each do |a|
   Rails.logger.info a.filename
   tempfile = Tempfile.new("#{a.filename}", "#{Rails.root.to_s}/tmp/")
   Rails.logger.info tempfile.path
end
Run Code Online (Sandbox Code Playgroud)

附件来自回形针.

这是输出:

billgates.jpg
/Users/bhellman/Sites/cline/tmp/billgates.jpg20101204-17402-of0u9o-0
Run Code Online (Sandbox Code Playgroud)

为什么最后会20101204-17402-of0u9o-0附加文件名?用纸夹等打破了一切.以前有人见过吗?对于我的生活,我不知道它在做什么?

谢谢

更新 回形针:github上的回形针

a是附件文件

tempfile = Tempfile.new("#{a.filename}", "#{Rails.root.to_s}/tmp/")
tempfile << a.body
tempfile.puts
attachments.build(
    :attachment => File.open(tempfile.path)
)
Run Code Online (Sandbox Code Playgroud)

and*_*der 24

最好确保您的临时文件具有正确的扩展名,从而节省您尝试并在以下情况下进行更改:

file = Tempfile.new(['hello','.jpg'])

file.path#=>类似于:"/ tmp/hello2843-8392-92849382--0.jpg"

更多信息:http://apidock.com/ruby/v1_9_3_125/Tempfile/new/class


dru*_*ndj 4

Tempfile.new 的第一个参数只是一个基本名称。为了确保每个临时文件都是唯一的,字符将附加到文件末尾。