レストランのレビューサイトを作っています。
RailsでElasticBeansTalkを使っております。
ここにレビューによる画像アップロードを行おうとすると500InternalServerErrorとなりました。
application.log を見たところ以下のようになっておりました。
log
1[2016-07-18T15:58:57.691648 #7062] INFO -- : Completed 500 Internal Server E 2rror in 3ms (ActiveRecord: 0.0ms) 3F, [2016-07-18T15:58:57.692753 #7062] FATAL -- : 4Errno::ENOENT (No such file or directory @ rb_sysopen - ./tmp/files/7efba0f72b2f57e0874bcf2d1d342917d77a8d8b9532e1fea207bfc2969d3d9f_7240296_450_9433877.jpg): 5 app/controllers/reviews_controller.rb:64:in `initialize' 6 app/controllers/reviews_controller.rb:64:in `open' 7 app/controllers/reviews_controller.rb:64:in `uploadimage' 8 app/controllers/reviews_controller.rb:14:in `create' 9
アップロードするControllerはこちらです。
ruby
1 def create 2 3 @review = Review.new(review_params) 4 file = review_params[:file] 5 file_name = file.original_filename 6 ext = File.extname(file_name).downcase 7 new_filename = 'review/' + SecureRandom.hex + ext 8 @review.image1 = new_filename 9 10 result = uploadimage(file, file_name, new_filename) 11 12 respond_to do |format| 13 if result=="success" && @review.save 14 format.html { redirect_to "/#{I18n.locale}/restaurant/#{@review.restaurant_id}", notice: 'Review was successfully created.' } 15 format.json { render :show, status: :created, location: @review } 16 else 17 format.html { redirect_to "/restaurant/#{@review.restaurant_id}", notice: result } 18 format.json { render json: @review.errors, status: :unprocessable_entity } 19 end 20 end 21 end
もしかしてEC2にそのままアップロードする仕組みがマズイのでしょうか?
回避方法をご教示ください。よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/19 00:46