HTML5のアップロードを行っていますが、理解できない問題が発生しています。この機能するコードを見てください:
if @image.save
render :json => {:status => "Successfully uploaded image!"}
else
render :json => {:status => "Something went wrong with your upload!"}
end
それは機能し、それが想定されていることを正確に実行します。ただし、応答を追加してHTML要求をキャッチすると、完全に失敗します(HTML部分は機能します)。
respond_to do |format|
if @image.save
format.html {redirect_to(edit_product_path(@image.product), :notice => "Your image was added successfully.")}
format.json {render :status => "Successfully uploaded image!"}
else
format.html {redirect_to(edit_product_path(@image.product), :alert => "An error occurred while attempting to upload your image. Please try again.")}
format.json {render :status => "Something went wrong with your upload!"}
end
end
何が間違っている可能性があるのか?シンプルなものを見落としているような気がします。ありがとう。
編集-問題は解決しました
私はそれが私が見落とし続けた愚かなことだと思いました。リクエストはJSONではなくHTMLであることが判明しました。これは、アップロードにはコンテンツタイプがmultipart / form-dataである必要があるため、respond_toがHTMLをトリガーしていたためです。