Rails 5.0.0.1、ファイル upload:carrierwave、UIでDrag & Dropをできる仕様とするべく、dropzonejs(ruby-gem:dropzonejs-rails)を入れています。
以下の通り画像(ファイルアップロード)のみであれば問題なく動きますが、画像(ファイル)のみならず、model内のその他のカラム(例えば、string
のタイトル等)を加えると、入れると、viewで出したい画面が出なくなります。
サーバー側での問題ではなく、単純にclass
の指定に問題があると思っていますが、直し方が分からず、誤りをご指摘頂けますと助かります。
###問題なく表示されるコード
html
1#erbファイル 2<%= form_for [:user, @product], url: :user_user_product, 3 html: {multipart: true, class: 'dropzone', id: 'my-dropzone'} do |f| %> 4 <div class = "fallback"> 5 <%= f.file_field :makeimg_three %> 6 <%= f.submit "編集する" %> 7 </div> 8 <% end %> 9 10#生成されるhtml 11<form class="dropzone" id="my-dropzone" enctype="multipart/form-data" action="/user/users/2/products/4" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="_method" value="patch" /><input type="hidden" name="authenticity_token" value="itPqv0HfK1eTIIJCca3ug8Zfpj9zd73BLkhjBExnHS42dU7fKwb3F9LFU+FaKcp61wbxhXAeRBiuRZcnkCUH9Q==" /> 12 <div class = "fallback"> 13 <input type="file" name="product[makeimg_three]" id="product_makeimg_three" /> 14 <input type="submit" name="commit" value="編集する" data-disable-with="編集する" /> 15 </div> 16</form>
###うまくいかないコード(単純にmodelのカラムを追加しただけです)
うまくいく方はform_for
にclass:'dropzone'
を指定していますが、そのままだとおかしな表示になってしまう為、外に出しているのですが、当然かもしれませんが、機能しなくなります。
html
1#erbファイル 2<%= form_for [:user, @product], url: :user_user_product, 3 html: {multipart: true} do |f| %> 4 <div class="form-group row"> 5 <%= f.label :title, "コース", class: "col-form-label form-adj required", style:"font-size:1rem;" %> 6 <div class="form-adj-latter"> 7 <%= f.text_field :title, class:"form-control", type:"text", placeholder:"例:目元が映えるメイク" %> 8 </div> 9 </div> 10 <div class="dropzone", id:'my-dropzone'> 11 <div class = "fallback"> 12 <%= f.file_field :makeimg_three %> 13 <%= f.submit "編集する" %> 14 </div> 15</div> 16 <% end %> 17 18#生成されるhtmlファイル 19 <form class="edit_product" id="edit_product_4" enctype="multipart/form-data" action="/user/users/2/products/4" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="_method" value="patch" /><input type="hidden" name="authenticity_token" value="kw+KGD28O9Yt16m95DuUKxyLnHN01UDtZm9dbuYYpn4vqS54V2XnlmwyeB7Pv7DSDdLLyXe8uTTmYqlNOlq8pQ==" /> 20 <div class="form-group row"> 21 <label class="col-form-label form-adj required" style="font-size:1rem;" for="product_title">コース</label> 22 <div class="form-adj-latter"> 23 <input class="form-control" type="text" placeholder="例:目元が映えるメイク" value="ttファンデーションの基礎教えます" name="product[title]" id="product_title" /> 24 </div> 25 </div> 26 <div class="dropzone", id:'my-dropzone'> 27 <div class = "fallback"> 28 <input type="file" name="product[makeimg_three]" id="product_makeimg_three" /> 29 <input type="submit" name="commit" value="編集する" data-disable-with="編集する" /> 30 </div> 31</div> 32</form>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。