0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

商品削除ボタンを表示できなかった話

Posted at

####起きてしまっているエラー

NameError GYAZO

実装中の一部haml
          .ItemBox__optionalArea
            %ul
              %li.optionalBtn.likeBtn
                %i.fas.fa-star
                お気に入り 0
            %ul.optional
              %li.optionalBtn
                = link_to "#" do
                  %i.fas.fa-flag
                  不適切な商品の通報
          = link_to '商品を削除する', item_path(item.id), method: :delete 

最下部のlink_toを表示させたかったが、NameErrorが出てしまう。
pathもあっているし、HTTPメソッドも問題なく記述しているため。
???となる。

####解決法

items_controller
class ItemsController < ApplicationController
  def index
    @items = Item.all
  end

  def new
    @item = Item.new 
    @item.images.new
  end

  def create
    @item = Item.new(item_params)
    if @item.save
      redirect_to root_path
    else
      @item.images.new
      render :new
    end
  end

  def show
    @item = Item.find(params[:id])
  end
#こちらshowアクションを追記

  def destroy
    items = Item.find(params[:id])
    item.destroy
  end

  private
  def item_params
    params.require(:item).permit(:name, :text, :price, :category, :condition, :postage_payer, :prefecture_id, :standby_day, :trading_status, :seller, :buyer, images_attributes: [:image_url]).merge(seller: current_user.id)
  end

end

実装中の一部haml
         = link_to '商品を削除する', item_path(@item.id), method: :delete 
該当の部分にコントローラーに定義した@itemを記述

####原因
そもそもitems controllerにshowアクションが記述されていなかった
初歩的なミスであったため、もう少し入念にみることを心がける様にします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?