railsの編集画面でimageカラムにアップした画像のみをレコードから削除する方法をご紹介します。
今回、編集画面で画像だけ削除できるような実装をしたいと思います。
前提としてarticleテーブルを作成し、画像を保存するためthumbnail_urlカラムを用意してあります。
実装の方法は簡単で編集画面で画像が存在している時は画像と削除ボタンを表示させてあげます。
formを作成し、admin配下にあるarticle_controllerにvalueをPOSTするようにします。
edit.html.erb
<% if @article.thumbnail_url.present? %>
<div class="article_thumb">
<p class=" fw_3 ctr">サムネイル画像</p>
<%= image_tag @article.thumbnail_url %>
<%= form_for([:admin, @article]) do |f| %>
<%= f.submit value: "Delete Thumbnail image",name: "delete_image",data: { confirm: "サムネイル画像を削除しますか?"}, class: "btn_send" s%>
<% end %>
</div>
<% end %>
削除ボタンが押されたら@article.thumbnail_urlにnilを代入し保存してあげます。
article_controller def update if params[:delete_image] #削除ボタンが押されたらnil @article.thumbnail_url = nil @article.save! render :action => 'edit' return end end
render :actionで編集画面に戻した後、returnでメソッドを抜けましょう。
これで実装完了です。
明日、トビタテの件で朝の6時からイスラエルの方と面談なので今晩オンライン英会話を使用して慣らしておきます。
基本イスラエルとの面談が夜中か早朝なのできついです。笑