我是 Ruby On Rails 的新手,我使用acts_as_votable gem 来创建喜欢和不喜欢的按钮来让用户喜欢和不喜欢帖子,但我不能让它们从喜欢变为不喜欢(反之亦然)并在每次他们更新计数器时单击而不刷新页面。我尝试遵循其他类似的答案,但我没有运气。如果没有我试图实现 Ajax 的混乱更改,我的代码如下所示:
发布模型acts_as_votable 和用户模型acts_as voter
帖子控制器有
def like
@post = Post.find(params[:id])
@post.liked_by current_user
redirect_to :back
end
def unlike
@post = Post.find(params[:id])
@post.unliked_by current_user
redirect_to :back
end
路线有
resources :posts do
member do
put 'like', to: "posts#like"
put 'unlike', to: "posts#unlike"
end
end
查看有
<%= @post.get_likes.size%>
<% if @post.get_likes.size ==1 %>
person like this
<% else %>
people like this
<% end %>
<div class="btn-group">
<% if (current_user.liked? @post) %>
<%= link_to unlike_post_path(@post), method: :put, class: "btn btn-default btn-sm" do %>
<span class="glyphicon glyphicon-chevron-down"></span>
Unlike
<%end %>
<% else %>
<%= link_to like_post_path(@post), method: :put, class: "btn btn-primary btn-sm" do %>
<span class="glyphicon glyphicon-chevron-up"></span>
Like
<% end %>
<% end %>
</div>
我阅读了很多关于 Ajax 的答案,但我无法复制结果。先感谢您!