如何在第二次点击时添加删除upvote或downvote的功能?

时间:2016-04-15 09:18:48

标签: ruby-on-rails ruby-on-rails-4 acts-as-votable

设置我的acts_as_votable,现在upvote和downvote按钮正常工作,但我希望用户在Facebook和Twitter上的第二次点击中移除他的upvote。 这是我的控制器

 def upvote
      @post = Post.find
      @post.downvote_by current_user
  end

  def downvote
  @post = Post.find(params[:id])
  @post.downvote_by current_user
  end

和索引

<%= link_to like_post_path(post), method: :put, class: 'upvote', remote: true  do %>
                    Upvote
                    <%= post.get_upvotes.size %>
                <% end %>

                <%= link_to dislike_post_path(post), method: :put, class: 'downvote', remote: true  do %>
                    Downvote
                    <%= post.get_downvotes.size %>
                <% end %>

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

<% unless post.liked_by current_user %>
<%= link_to like_post_path(post), method: :put, class: 'upvote', remote: true  do %>
     Upvote
     <%= post.get_upvotes.size %>
<% end %>
<% end %>

<% if post.liked_by current_user %>    
<%= link_to dislike_post_path(post), method: :put, class: 'downvote', remote: true  do %>
  Downvote
  <%= post.get_downvotes.size %>
<% end %>
<% end %>