質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

913閲覧

carrierwave でネストしたフォームからとんでくる画像を扱う方法

退会済みユーザー

退会済みユーザー

総合スコア0

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2019/04/03 01:28

編集2019/04/03 01:31

###やりたいこと

最低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 でどう扱えばいいんでしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

下記の質問参考になりますでしょうか?

https://teratail.com/questions/185010

投稿2019/04/19 03:49

編集2019/04/19 03:51
params_bird

総合スコア26

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/04/19 05:02

回答有り難うございます サブモデルを activerecord にしてしまうとテーブルを持たないと使えないのではないでしょうか JSONにして1カラムに入れるために一時的に別テーブルを使うのはDBのリソースがもったいない気がします
params_bird

2019/04/19 06:06

申し訳ございません。 そこまではわからないですが、ネストモデルのデータ取得に関して私も詰まったことがあったので参考までに共有させていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問