https://qiita.com/kazukimatsumoto/items/14bdff681ec5ddac26d1
https://qiita.com/naberina/items/c6b5c8d7756cb882fb20
を参考にいいね機能を実装中なのですが、
ボタン?(カウントメソッド)が反応してくれず、
どこを押しても反応がありません
検証ツールで見たところエラーも出ていないので
jqueryが反応するしない以前の問題のようです
モデル関係
book.rb belongs_to :user has_many :favorites , dependent: :destroy def favorited_by?(user) favorites.where(user_id: user.id).exists? end facorite.rb class Favorite < ApplicationRecord belongs_to :user belongs_to :book end user.rb has_many :favorites has_many :favorite_books, through: :favorites, source: :book
books show.html.erb いいねボタン画面
<div class="main_contents"> <div class="blog_contents"> <div id="likes_buttons_<%= @book.id %>"> <%= render partial: 'favorites/favorite', locals: { book: @book} %> </div> </div> </div>
_favorite.html.erb
<% if user_signed_in? %> <% if @book.favorited_by?(current_user) %> <!-- ログインしているユーザーがファボしたかどうかで分岐 --> <button><span>お気に入り解除: </span><%=link_to book.favorites.count, book_favorites_path(book.id), method: :delete, remote: true %></button> <% else %> <button><span>お気に入り登録: </span><%=link_to book.favorites.count, book_favorites_path(book.id), method: :post, remote: true %></button> <% end %> <% else %> <p><span>お気に入り数: </span><%= book.favorites.count %></p> <% end %>
create.js.html.erb
$('#likes_button_<%= @book.id %>').html("<%= j(render partial: 'fovorites/fovorite', locals: {book: @book}) %>");
favorite.controller
class FavoritesController < ApplicationController def create favorite = current_user.favorites.build(book_id: params[:book_id]) favorite.save redirect_to books_path end def destroy favorite = Favorite.find_by(book_id: params[:book_id], user_id: current_user.id) favorite.destroy redirect_to books_path end end
likes_buttonsの表記をいじると治る
という記事があったのでやったのですがだめした
あなたの回答
tips
プレビュー