Railsで画像が投稿できる投稿画面を作成しているのですが、画像を添付しバリデーションエラーになるともう一度画像を追加しなければならないため、面倒です。
そこで、以下を参考にCarrierwaveの画像のキャッシュを実装しているのですが、問題なく実装でき、パラメータにもimage_cacheの値が入っているのですが
バリデーションエラーになると画像データが消えてしまします。
https://teratail.com/questions/213320
form.html.erb - f.object.photos.each_with_index do | photo, index | = f.fields_for :photos, photo, index: index do |image| = image.file_field :image, accept: 'image/jpeg, image/gif, image/png' = image.hidden_field :image_cache # →ここに追加
form.rb(Formオブジェクト) def post_photos_params @params.require(:post).slice(:photos).permit( photos: [ :image, :image_cache ] # →ここに追加 ) end
フォームから送信されるパラメータにはimage_cacheに値が正確に入っています。
Parameters: {"utf8"=>"✓", "authenticity_token"=>"xA0kZJAA+Y5GKj/wydbeX5/9sHxYHGTL+S+JhUTMCjcr6I+inZG6uqtdpoQ27dkWt0W3+KRcHKz4LlQ/2LrJxg==", "form"=>{"post"=>{"content"=>"テストコンテンツ", "photos"=>{"0"=>{"image_cache"=>"1589752323-27163-0010-2646/2018-06-29_12.13.08.jpg"}}, "commit"=>"上記の内容で投稿する"}
何故、フォームから送信されるパラメータにはimage_cacheに値が入っているにも関わらず、画像データがキャッシュされないのでしょうか?
是非、アドバイスなどよろしくお願い致します。
あなたの回答
tips
プレビュー