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

ステートメントは、返されたファイル(ブロックの終了後に閉じられる)ではなく、doブロックの結果にx = File.open(...) do |f| ...設定されます。xしたがって、効果的に行っているのは、ファイルオブジェクトではなく、書き込まれたバイト数であるtemp_imageの結果に設定することです。f.write

于 2012-08-24T04:17:20.127 に答える