前提・実現したいこと
プログラミング2ヶ月目の初学者です、色々至らぬ点があるとは思いますが、成長意欲はあるつもりですのでどうか学習のヒントだけでも教えてください。
現在、railsでSNS風のアプリを作成中で、いいね機能を実装しようとしています。
ボタンを押すと色が変わり、ボタンの横の数字が変動する。ようなものをイメージしており、
同期通信の状態(リロードをする)と上手く行っております。
検証ツールで中身を見ると
発生している問題・エラーメッセージ
Uncaught Error: Syntax error, unrecognized expression: #like-button-#{@post.id} at Function.se.error (jquery-3.4.1.min.js:2) at se.tokenize (jquery-3.4.1.min.js:2) at se.select (jquery-3.4.1.min.js:2) at Function.se [as find] (jquery-3.4.1.min.js:2) at k.fn.init.find (jquery-3.4.1.min.js:2) at new k.fn.init (jquery-3.4.1.min.js:2) at k (jquery-3.4.1.min.js:2) at <anonymous>:1:1 at processResponse (rails-ujs.js:283) at rails-ujs.js:196
と出ており、Googleの検索にかけても解決策が見出せず現在に至ります。
該当のソースコード
Gem
1 2gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 3 4gem 'pry-rails' 5 6gem 'devise' 7 8gem 'mini_magick' 9gem 'image_processing', '~> 1.2' 10 11gem 'font-awesome-sass' 12 13gem 'jquery-rails' 14 15gem 'jquery-turbolinks' 16
application.js require("@rails/ujs").start() require("@rails/activestorage").start() require("channels") require('jquery') require('turbolinks') require("bootstrap") import 'bootstrap'; import '../stylesheets/application';
_like.html.erb <% if user_signed_in? %> <% if post.like_user(current_user.id) %> <%= button_to post_like_path(like, post_id: post.id), method: :delete, id: "like-button-#{post.id}", remote: true do %> <i class="fas fa-star"></i> <span> <%= post.likes_count %> </span> <% end %> <% else %> <%= button_to post_likes_path(post), id: "like-button-#{post.id}", remote: true do %> <i class="far fa-star"></i> <span> <%= post.likes_count %> </span> <% end %> <% end %> <% else %> <i class="far fa-star"></i> <span> <%= post.likes_count %> </span> <% end %>
create.js.erb / destroy.js.erb $("#like-button-#{@post.id}").html("<%= j(render partial: 'like', locals: { posts: @posts, likes: @likes, like: @like, post: @post}) %>")
その他、問題がありそうな箇所ありましたら教えていただけると幸いです。
回答2件
あなたの回答
tips
プレビュー