我正在创建一个 Rails 4 应用程序,用户可以在其中通过acts_as_votable gem 对给定的帖子进行投票。假设作为用户,我按下 upvote 按钮,如果我再次按下 SAME 按钮,我将如何做到这一点,投票被取消,所以本质上是“unupvote”?
这是我的 postvote 方法在我的帖子控制器中的样子:
def upvote
@post = Post.find(params[:id])
@post.upvote_by current_user
redirect_to :back
end
我的帖子模型
class Post < ActiveRecord::Base
acts_as_votable
belongs_to :user
end
最后这就是我在视图中呈现按钮的方式
<div class="btn-group">
<%= link_to like_post_path(post), method: :put, class: "btn btn-default btn-sm" do %>
<span class="glyphicon glyphicon-chevron-up"></span>
Upvote
<%= post.get_upvotes.size %>
<% end %>
</div>
谢谢你们的帮助!