###やりたいこと
最低1つ必須の画像アップロードフォームに
任意で画像を追加できるボタンをつけて
それら複数の画像を1つのカラムにJSONで保存したいです
数日悩んでいるのですがどう実装していいかがわからず困っています
問題
carrierwave という画像アップロードジェムがあるんですがカラムとフォームを1:1で指定して使うものみたいで
間にネストした複数フォームを挟んでアップロードを行う方法がわかりません
試したこと
デフォルトのアップロードフォームとアップロードフォーム追加ボタン
view
1<%= form_for @campaign do f %> 2<div class="form-group"> 3<%= f.fields_for :banner_image do |f| %> 4<%= f.file_field :default, class: 'form-control upload', required: false %> 5<%= select_tag 'add_locale', options_for_select([['言語を追加'] + I18n.available_locales.map{|l| [l.to_s, l.to_s]}) %> 6<% end %> 7</div> 8<% end %>
という感じで view とフォームを追加する JS だけはつくったのですが
コントローラーをどう書いていいのかわかりません
パラメーターは
"banner_image"=>{"default"=>#<ActionDispatch::Http::UploadedFile:..., "ja"=>#<ActionDispatch::Http::UploadedFile:...}
のようにとんでくるようになったのですが、
AWS S3 に画像をアップロードして
@campaign.banner_image
というカラムにそのURLを
{"default":"http://...", "ja":"http://..."}
のようなJSONで保存して再表示の際にもそのURLが表示されるようにするにはどうすればいいのでしょうか
まず追加ボタンなしで単一のイメージが1段ネストしてとんでくる場合に carrierwave でどう扱えばいいかがわからなくて…
"banner_image"=>#<ActionDispatch::Http::UploadedFile:...
という形でとんでくれば
mount_uploader :banner_image, CampaignImageUploader
とかくだけでいいみたいなのですが
"banner_image"=>{"default"=>#<ActionDispatch::Http::UploadedFile:...
とネストして飛んできた場合に carrierwave でどう扱えばいいんでしょうか
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/04/19 05:02
2019/04/19 06:06