Note that there are some explanatory texts on larger screens.

plurals
  1. PORails: Ajax for Like Button and Updating Like Count
    primarykey
    data
    text
    <p>I am able to update the like and unlike button via ajax, but I am not able to update the like count.</p> <p>Post <code>has_many</code> likes</p> <p>likes_controller.rb</p> <pre><code> def create @like = Like.new(:post_id =&gt; params[:post_to_be_liked]) if @like.save respond_to do |format| format.html {redirect_to :back, notice: "Liked!"} format.js end end end </code></pre> <p>view.html.erb</p> <pre><code>&lt;% @post = user.posts.first %&gt; &lt;div id="send_like_for_&lt;%= @post.id %&gt;"&gt; &lt;% if @post.is_liked?(@post, current_user)%&gt; &lt;%= render 'unlike'%&gt; &lt;%else%&gt; &lt;%= render 'like'%&gt; &lt;%end%&gt; &lt;/div&gt; &lt;div id="liked_&lt;%= @post.id %&gt;" %&gt; &lt;%= render 'liked_users'%&gt; &lt;/div&gt; </code></pre> <p>create.js.erb</p> <pre><code>$("#send_like_for_&lt;%= params[:post_to_be_liked]%&gt;").html("&lt;%= escape_javascript(render('users/unlike')) %&gt;") $("#liked_&lt;%= params[:post_to_be_liked]%&gt;").html("&lt;%= escape_javascript(render('users/liked_users')) %&gt;") </code></pre> <p>_like.html.erb</p> <pre><code>&lt;%= link_to "LIKE", likes_path(:post_to_be_liked =&gt; @post.id), remote: true, :method=&gt;:post %&gt; </code></pre> <p>_unlike.html.erb</p> <pre><code>&lt;span&gt; UNLIKE &lt;/span&gt; </code></pre> <p>_liked_users.html.erb</p> <pre><code>&lt;%= "#{@post.likes.length} like this" %&gt; </code></pre> <p>The like/unlike functionality works just fine and when someone likes the post the button changes to Unlike. But the like count doesn't increase.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload