前提・実現したいこと
Railsを勉強し始めて1ヶ月ほどの者です。いいね機能のような非同期通信を利用してカウントを1上げる機能を、jQueryを導入して行っているのですが、非同期で反映されません。ご指導いただければ幸いです。
該当のソースコード
atamadaka(頭高)というのがいいね機能でいうところのlikeになります。わかりづらくてすみません。
atamadakas_controller.rb
1class AtamadakasController < ApplicationController 2 def create 3 @atamadaka = Atamadaka.create(user_id: current_user.id, accent_id: params[:accent_id]) 4 @atamadakas = Atamadaka.where(accent_id: params[:accent_id]) 5 @accent = Accent.find(params[:accent_id]) 6 end 7 8 def destroy 9 atamadaka = Atamadaka.find_by(user_id: current_user.id, accent_id: params[:accent_id]) 10 atamadaka.destroy 11 @atamadakas = Atamadaka.where(accent_id: params[:accent_id]) 12 @accent = Accent.find(params[:accent_id]) 13 end 14end
accentコントローラーのshowアクションに対応するビューファイルに表示しようとしています。
show.html.erb
1<li class="pattern-list", id="atamadaka-<%= @accent.id %>"> 2 <%= render partial: "atamadakas/atamadaka", locals: { accent: @accent, atamadakas: @atamadakas } %> 3</li>
_atamadaka.html.erb
1<% if user_signed_in? %> 2 <% if Atamadaka.find_by(user_id: current_user.id, accent_id: accent.id) %> 3 <%= link_to accent_atamadaka_path(accent.id, accent.atamadakas), method: :delete, remote: true do %> 4 頭高型 5 <span> 6 <%= accent.atamadakas_count %> 7 </span> 8 <% end %> 9 <% else %> 10 <%= link_to accent_atamadakas_path(accent.id), method: :post, remote: true do %> 11 頭高型 12 <span> 13 <%= accent.atamadakas_count %> 14 </span> 15 <% end %> 16 <% end %> 17<% else %> 18 頭高型 19 <span> 20 <%= accent.atamadakas_count %> 21 </span> 22<%end%>
create.js.erb
1$("#atamadaka-<%= @accent.id %>").html("<%= j(render partial: 'atamadakas/atamadaka', locals: { accent: @accent, atamadakas: @atamadakas, atamadaka: @atamadaka}) %>")
destroy.js.erb
1$("#atamadaka-<%= @accent.id %>").html("<%= j(render partial: 'atamadakas/atamadaka', locals: { accent: @accent, atamadakas: @atamadakas }) %>");
試したこと
ページをリロードすれば反映されることから、turbolinksやjqueryの導入が問題なのではないだろうかと考えて、turbolinksに関しては関係する記述がある、Gemfileとapplication.jsとapplication.html.erb内の該当箇所を無効化しました。またjqueryの読み込みは一番最初にされるようにapplication.js内に記述し、bundle installしなおしました。また以前に同様の質問をされている方の回答を拝見したりしたのですが、未だにわかりません。どうぞよろしくお願い致します。
補足情報(FW/ツールのバージョンなど)
rails 6.0.0
ruby 2.6.5
あなたの回答
tips
プレビュー