ruby on rails で ajaxを使って、いいねボタンを作成しようとしているのですが、検証ツールで確認すると以下のようなエラーが出ます。
VM7681:2 Uncaught SyntaxError: missing ) after argument list
at processResponse (rails-ujs.js:283:1)
at rails-ujs.js:196:1
at XMLHttpRequest.xhr.onreadystatechange (rails-ujs.js:264:1)
processResponse @ rails-ujs.js:283
(anonymous) @ rails-ujs.js:196
xhr.onreadystatechange @ rails-ujs.js:264
XMLHttpRequest.send (async)
XMLHttpRequest.send @ includes.js?v=35a79b…8cb59af0b05e059:839
./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js.Rails.ajax @ rails-ujs.js:216
./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js.Rails.handleRemote @ rails-ujs.js:652
(anonymous)
SyntaxError: missing ) after argument listは
「関数の呼び出し方にエラーがあります。たとえば、入力ミスや演算子の記述忘れ、文字列のエスケープ忘れの可能性が考えられます。」
との事なので、自分のコードを色々調べたのですが、問題箇所が分かりません。どこか教えていただけると助かります。
また、気になる箇所がありまして、
このようにコードを打った際に、
alert('いいねが出来ている');
window.addEventListener('DOMContentLoaded', ('#likes_buttons_
の部分が白いまま表示されるのですが、これま何か読み込めてないと言う事なのでしょうか?
likes/destroy.js.erb
1alert('いいねが出来ている'); 2window.addEventListener('DOMContentLoaded', ('#likes_buttons_<%= @dogrun.id %>').html("<%= j(render partial: 'likes/like', locals: {dogrun: @post}) %>");
likes/create.js.erb
1alert('いいねを解除している'); 2window.addEventListener('DOMContentLoaded', ('#likes_buttons_<%= @dogrun.id %>').html("<%= j(render partial: 'likes/like', locals: {post: @dogrun}) %>"); 3
likes/_like.html.erb
1 2 3<% if user_signed_in? %> 4 <% if current_user.liked_by?(@dogrun.id) %> 5 <td> 6 <%= link_to destroy_like_path(@dogrun), method: :DELETE, remote: true do %> 7 <i class="fa fa-heart unlike-btn"></i> 8 <% end %> 9 <%= @dogrun.likes.count %> 10 </td> 11 <% else %> 12 <td> 13 <%= link_to create_like_path(@dogrun), method: :POST, remote: true do %> 14 <i class="fa fa-heart like-btn"></i> 15 <% end %> 16 <%= @dogrun.likes.count %> 17 </td> 18 <% end %> 19<% end %> 20
show.html.erb
1略 2<div id="likes_buttons_<%= @dogrun.id %>"> 3 <%= render partial: 'likes/like', locals: {dogrun: @dogrun} %> 4 </div>
likes_controller
1class LikesController < ApplicationController 2 before_action :dogrun_params 3 def create 4 Like.create(user_id: current_user.id, dogrun_id: params[:id]) 5 end 6 7 def destroy 8 Like.find_by(user_id: current_user.id, dogrun_id: params[:id]).destroy 9 end 10 11 private 12 13 def dogrun_params 14 @dogrun = Dogrun.find(params[:id]) 15 end 16end 17
回答1件
あなたの回答
tips
プレビュー