Ruby初学者です。
ご教授頂けると幸いです。
【いいね機能を実装したい】
【悩んでいること】
・Ajexが反応しない
→ブラウザを更新をすると反映はされるのですが、Ajexで切り替わりません。
【コード】
http://mochikichi.hatenablog.com/entry/rails_tutorial_like
こちらの記事を参考にしてイイね機能を作成しました。
likes/_like.html.erb
<% if post.like_user(current_user.id) %> <%= button_to post_like_path(likes, post_id: post.id), method: :delete, id: post.id, remote: true do %> <%= image_tag("icon_red_heart.png") %> <span> <%= post.likes_count %> </span> <% end %> <% else %> <%= button_to post_likes_path(post),id: post.id, remote: true do %> <%= image_tag("icon_heart.png") %> <span> <%= post.likes_count %> </span> <% end %> <% end %>
create.js.erb
$("#like-<%= @post.id %>").html("<%= j(render partial: 'like', locals: { post: @post, like: @like, likes: @likes }) %>");
destroy.js.erb
$("#like-<%= @post.id %>").html("<%= j(render partial: 'like', locals: { post: @post, likes: @likes }) %>");
likes_controller
def create @like = current_user.likes.find_or_create_by(post_id: params[:post_id]) @likes = Like.where(post_id: params[:post_id]) @post = Post.find(params[:post_id]) end def destroy like = current_user.likes.find_by(post_id: params[:post_id]) like.destroy @likes = Like.where(post_id: params[:post_id]) @post = Post.find(params[:post_id]) end
回答3件
あなたの回答
tips
プレビュー