学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

【民泊5.1】【Windows】写真削除

コントローラにデストロイメソッドを追加します。


記述追加 app\controllers\photos_controller.rb(17行目)

  def destroy
    @photo = Photo.find(params[:id])
    @room = @photo.room

    @photo.destroy
    @photos = Photo.where(room_id: @room.id)

    respond_to :js
  end



app\controllers\photos_controller.rb

class PhotosController < ApplicationController

    def create
      @room = Room.find(params[:room_id])
  
      if params[:images]

        params[:images].each do |img|
          @room.photos.create(image: img)
        end
  
        @photos = @room.photos
        redirect_back(fallback_location: request.referer, notice: "保存しました。")
      end
    end

    def destroy
      @photo = Photo.find(params[:id])
      @room = @photo.room
  
      @photo.destroy
      @photos = Photo.where(room_id: @room.id)
  
      respond_to :js
    end
    

end
  



「app\views\photos」フォルダに「destroy.js.erb」ファイルを新規作成します。


app\views\photos\destroy.js.erb
写真を削除するとチェックマークも消えるようにしています。

$('#photos').html("<%= j render 'photos_list' %>")
<% if @room.photos.blank? %>
  $('#photo_check').hide();
<% end %>

<% if !@room.active && !@room.price.blank? && !@room.listing_name.blank? && !@room.photos.blank? && !@room.address.blank? %>
    $('#publish_button').attr('disabled', false);
<% else %>
    $('#publish_button').attr('disabled', true);
<% end %>



ブラウザ確認
写真が削除できるのを確認して下さい。
確認するには一度「rooms」テーブルの「active」をnullにする必要があります。
http://localhost:3000/rooms/1/photo_upload


activeをnullにして確認
activeをnullにして確認