【rails】編集画面でimageカラムにアップした画像のみをレコードから削除する方法

f:id:daikiyano:20190317210252p:plain

railsの編集画面でimageカラムにアップした画像のみをレコードから削除する方法をご紹介します。

今回、編集画面で画像だけ削除できるような実装をしたいと思います。
前提としてarticleテーブルを作成し、画像を保存するためthumbnail_urlカラムを用意してあります。
実装の方法は簡単で編集画面で画像が存在している時は画像と削除ボタンを表示させてあげます。
formを作成し、admin配下にあるarticle_controllerにvalueをPOSTするようにします。

f:id:daikiyano:20190317205200p:plain

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時からイスラエルの方と面談なので今晩オンライン英会話を使用して慣らしておきます。
基本イスラエルとの面談が夜中か早朝なのできついです。笑

www.for-engineer.life

www.for-engineer.life

www.for-engineer.life

>文系エンジニア大学生の技術ブログ

文系エンジニア大学生の技術ブログ

社会が多様化していく中、大学生の学生生活も多様であるべきと考えています。主にエンジニア向けにITやプログラミングなどの技術系と大学生向けに休学、留学、海外生活、トビタテ留学、長期インターンに関する記事を書いています。