やりたいこと
Rails5.2.3にて、入力フォームで選択後、POSTされたファイルの形式チェックとアップロードを行いたい。
疑問
イメージとしては以下のようにファイルアップロード処理をメソッドとして切り出し、
(処理) の中でファイルの形式チェックとアップロード(ファイル書き込み)を行いたいです。
Ruby
1def file_upload(file_data) # file_data: フォームから受け取ったファイルデータ 2 File.Open([ファイル名], 'wb') do |f| 3 (処理) 4 end 5end
(処理)内でファイルの形式チェックに引っかかったらエラーとして負値をreturnさせたいと考えています。
ブロック形式でOpenした場合、endで閉じてくれることは調べてわかったのですが、
File.Open から end までの途中でreturnした場合は、ファイルは閉じられるのでしょうか?
閉じられない場合、returnの前に閉じる処理は実行できるのでしょうか?
実装して一連の動作確認はしたのですが、return前にf.close等書いても挙動が変わらないことや、
実際に開かれたままかどうか確認することが出来ずに困っています。
そもそもreturnを使うような実装がRailsとして適当ではない、ということでしたら、そのようにご指摘いただけますと助かります。
以上、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/05 00:20
2020/06/05 00:40
2020/06/05 00:43
2020/06/05 00:46
2020/06/05 01:03