前提・実現したいこと
Railsでいいね機能を実装したのですが、いいねが押されている状態ではハートの色を赤色に
したいのですがうまくいきません。
該当のソースコード
favoritescontroller
1class FavoritesController < ApplicationController 2 before_action :authenticate_user! 3 4 def create 5 @book = Book.find(params[:book_id]) 6 favorite = @book.favorites.new(user_id: current_user.id) 7 favorite.save 8 redirect_to request.referer 9 end 10 11 def destroy 12 @book = Book.find(params[:book_id]) 13 favorite = @book.favorites.find_by(user_id: current_user.id) 14 favorite.destroy 15 redirect_to request.referer 16 end 17end
html
1<% if book.favorited_by?(current_user) %> 2 <%= link_to book.favorites.count, book_favorites_path(book), method: :delete, class: "fas fa-heart heart_red" %> 3<% else %> 4 <%= link_to book.favorites.count, book_favorites_path(book), method: :post, class: "fas fa-heart heart_blue" %> 5<% end %>
試したこと
色々考えたのですが、自分の勉強不足で、分かりませんでした。
お力を貸していただけると幸いです。
補足情報(FW/ツールのバージョンなど)
Rails5.2.6
回答2件
あなたの回答
tips
プレビュー