プログラミング歴一ヶ月の初心者です。
いいね機能を非同期通信できるように実装してみたのですが、
リロードをしないと反映されない状態です。
リロードすると正常に動くきますので、モデルやアソシエーション、コントローラー
は正常に動いていると仮定しています。
申し訳ありませんが、教えていただけると幸いです。
likes.controller.rb
class LikesController < ApplicationController def create @like = current_user.likes.create(post_id: params[:post_id]) end def destroy @like = Like.find_by(post_id: params[:post_id], user_id: current_user.id) @like.destroy end end
show.html.haml(render部中身)
.element#like{id:@post.id} = render partial: 'likes/like', locals: { post: @post}
like.html.haml(render先)
- if current_user - if current_user.already_liked?(@post) = link_to "取り消す", post_like_path(@post), method: :delete, remote: true - else = link_to "イイね", post_likes_path(@post), method: :post, remote: true
views/likes/create.js.erb
$("#like-<%= @post.id %>").html("<%= j(render 'posts/like') %>");
views/likes/destroy.js.erb
$("#like-<%= @post.id %>").html("<%= j(render 'posts/like') %>");
説明不足であるかもしれませんが、アドバイスいただけましたら幸いです。
他に情報が必要でした教えてください。
どうぞよろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/20 07:00
2020/07/20 07:48
2020/07/20 08:08
2020/07/20 10:16 編集
2020/07/21 00:51