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>
我希望第一行也返回文件对象。为什么返回整数?
答案 0 :(得分:4)
语句x = File.open(...) do |f| ...
将x
设置为do块的结果,而不是设置为返回的文件(在块完成后关闭)。所以你实际做的是将temp_image
设置为f.write
的结果,这是写入的字节数,而不是文件对象。