4
temp_image = File.open(Rails.root.join("tmp","project_image.png"), 'wb') do |f| 
  f.write(Base64.decode64(image_data))
end

puts temp_image
puts File.open(Rails.root.join("tmp","project_image.png"))

输出:

24018

< 文件:0x007fddd55c8db0 >

我希望第一行也返回文件对象。为什么它返回整数?

4

1 回答 1

4

该语句x = File.open(...) do |f| ...设置x为 do 块的结果,而不是返回的文件(在块完成后关闭)。因此,您实际上所做的是设置temp_image为的结果f.write,即写入的字节数,而不是文件对象。

于 2012-08-24T04:17:20.127 回答