前提・実現したいこと
画像を複数同時にアップロード、DBに保存したい。
CloudinaryとCarrierWaveを使って、herokuにあげる。
発生している問題・エラーメッセージ
2つの写真を保存してもDBには一つの写真しか保存されていない
Micropost.last.pictures[0]を打つと以下のように表示される。
<PictureUploader:0x00005592f2b2e0c8 @model=#<Micropost id: 7, pictures: "\"image/upload/v1613479395/xvxxrhawuhvk6kddp9iv.jpg...">, @mounted_as=:pictures, @file=#<Cloudinary::CarrierWave::CloudinaryFile:0x00005df88 @uploader=#<PictureUploader:0x00005592f2b2e0c8 ...>, @identifier="\"image/upload/v1613479395/xvxxrhawuhvkddp9iv.jpg\"", @filename="\"image/upload/v1613479395/xvxxrhawuhvkddp9iv.jpg\"", @version=nil, @storage_type=nil, @resource_type="raw", @public_id="\"image/upload/v1613479395/xvxxrhawuhvkddp9iv", @format="jpg\"">, @stored_public_id="\"image/upload/v1613479395/xvxxrhawuhvkddp9iv", @public_id="\"image/upload/v1613479395/xvxxrhawuhvkddp9iv", @stored_version=nil, @original_filename="_image_upload_v1613479395_xvxxrhawuhvkddp9iv.jpg_">
画像を投稿する際のパラメーターにはきちんと二つ入っている
["pictures", "[\"jrz8ivdalyltj1lyecja.jpeg\",\"tijlwzuyyxbhij3lh8yw.jpg\"]"]
該当のソースコード
ruby
1class Micropost < ApplicationRecord 2 mount_uploaders :pictures, PictureUploader
ruby
1<%= f.file_field :pictures , multiple: true%>
ruby
1def micropost_params 2 params.require(:micropost).permit(:content, { pictures: [] }) 3end
試したこと
色々なサイトを参考にしたりcontrollerでデバッグしても解決しませんでした。
picturesはpostgresqlに保存されています。データの型はjsonです。
postgresqlの DBをしらべてみてもやはり一つしか投稿されていませんでした。
参考サイト
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。