前提・実現したいこと
いいね機能を非同期化したのですがリロードをしないと反映されない状態です。
エラーなどはありませんが、リロードをしないといいね機能が反映されない原因をご教授願えますでしょうか。
発生している問題・エラーメッセージ
リロードをしないと反映されない状態なので、どの部分に処理ができない原因を突き止めたいです。
該当のソースコード
_favorite-btn.html.erb
<% if tweet.favorited_by?(current_user) %> <%= link_to tweet.favorites.count, tweet_favorites_path(tweet), method: :delete, remote: true, class: "fas fa-heart heart_red" %> <% else %> <%= link_to tweet.favorites.count, tweet_favorites_path(tweet), method: :post, remote: true, class: "fas fa-heart heart_blue" %> <% end %>
js
1$("#tweet_<%= @tweet.id %> .favorite-btn").html("<%= j(render 'favorites/favorite-btn', tweet: @tweet) %>");
js
1$("#tweet_<%= @tweet.id %> .favorite-btn").html("<%= j(render 'favorites/favorite-btn', tweet: @tweet)
showhtml
1<td class="favorite-btn"> 2<%= render 'favorites/favorite-btn', tweet: tweet%> | 3</td>
controller
1class FavoritesController < ApplicationController 2 3 def create 4 @tweet = Tweet.find(params[:tweet_id]) 5 favorite = @tweet.favorites.new(user_id: current_user.id) 6 favorite.save 7 end 8 9 def destroy 10 @tweet = Tweet.find(params[:tweet_id]) 11 favorite = @tweet.favorites.find_by(user_id: current_user.id) 12 favorite.destroy 13 end 14end
試したこと
・部分テンプレートでjsを呼び出すためのremote: trueでfavoritesディレクトリ内にあるcreate.js.erb、destroy.js.erbを呼び出し非同期処理を行えるようにしたが、リロードしないと反映されない
・非同期処理するためのjavascriptが呼ばれていないことが原因かもしれないと思いgemfileにjqueryをダウンロードしているか確認
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。