お世話になります。
前提・実現したいこと
https://qiita.com/YuitoSato/items/94913d6a349a530b2ea2
上記サイトを参考にいいね機能を導入しようと考えています。
(上記のサイトでlikeとなっている部分をwillbuyに変更しています。)
view/items/index.html.erbから部分テンプレートとして_tr.html.erb、そしてまた部分テンプレートとして_willbuy.html.erbを呼び出しておりますが、下記エラーが出てしまいます。
なかなか解決に至らずこちらに質問させていただきました。
間違っている箇所をご指摘いただければと思います。
よろしくお願いいたします。
発生している問題・エラーメッセージ
Ruby エラー内容 NameError at /items undefined local variable or method `willbuy' for #<#<Class:0x007f8047147de0>:0x007f8045ce7580> #willbuyモデル class Willbuy < ApplicationRecord belongs_to :item, counter_cache: :willbuy_count belongs_to :user end #itemモデル class Item < ApplicationRecord mount_uploader :item_image, ImageUploader validates :item_name, presence: true validates :item_image, presence: true belongs_to :user has_many :willbuys, dependent: :destroy # ユーザーがすでにwillbuyしているか確認するメソッド def willbuy_user(user_id) Willbuy.find_by(user_id: user_id) end end #/views/items/html.html.erb <div class="item-list"> <% @items.each do |item| %> <%= render 'tr', item: item %> <% end %> </div> #/views/items/_tr.html.erb <!-- ユーザーアイコンとユーザーネーム--> <div class="hello"> <% if !item.user.icon.present? %> <%= image_tag ("default.jpg") , class:"icon" %> <% else %> <%= image_tag item.user.icon.icon.url, class:"icon"%> <% end %> <span> <%= item.user.first_name %> </span> </div> <!-- アイテム名 と アイテムコスト--> <div> <%= item.item_name %> <% if item.item_cost.present? %> <span> <%= item.item_cost %>円 </span> <% end %> </div> <!-- アイテム画像 --> <div> <%= image_tag item.item_image.url, class:"item_image" %> </div> <!-- 編集と削除 --> <% if current_user == item.user %> <div> <%= link_to item_path(item.id), data: { confirm: "Are you sure?"}, method: :delete do %> <i class="fa fa-trash-o fa-2x" aria-hidden="true"></i> <% end %> <%= link_to edit_item_path(item.id), remote: true do %> <i class="fa fa-pencil fa-2x" aria-hidden="true"></i> <% end %> <% else %> <!-- WillbuyとDidbuy --> <%= render 'willbuys/willbuy', item: item %> <% end %> </div> #/views/willbuys/_willbuy.html.erb <% if logged_in? %> <% if item.willbuy_user(current_user.id) %> #以下の行でエラー発生 <%= button_to item_willbuy_path(willbuy, item_id: item.id), method: :delete, id: "willbuy-button", remote: true do %> <i class="far fa-hand-paper"></i> <% end %> <% else %> <%= button_to "Willbuy", item_willbuys_path(item), id: "willbuy-button", remote: true %> <% end %> <% end %>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。