acts_as_votable gem喜欢rails中页面上的所有帖子

时间:2017-01-30 17:12:50

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 rubygems

Lemme解释我的意思,重点是我在我的rails应用程序中使用acts_as_votable gem并且它工作fyn,问题是我使用ajax并且我使用它来喜欢我的索引页面中的各个帖子。我将用代码解释

这是我的@confessions控制器实例变量,具有所有投票

 @confessions = Confession.where(amitian_id: ids).order('created_at DESC')

现在这是我的观点,显示所有帖子

  -@confessions.each do |c|
  # code  
  =link_to pluralize(c.get_upvotes.size,"Like"),like_confession_path(c) , method: :get,remote: true , class: 'like'
  =link_to pluralize(c.get_downvotes.size,"Dislike"),dislike_confession_path(c) , method: :get,remote: true ,class: 'dislike'
  end

好吧,直到现在我可以使用'c'变量来引用一个帖子..但是在我的ajax脚本中我有这样的东西

  $('.like').html('<%=  pluralize(@confessions.get_upvotes.size,"Like") %>');
  $('.dislike').html('<%=  pluralize(@confessions.get_downvotes.size,"Dislike") %>');

现在很明显,这就像所有的post变量@confessions都有...我怎样才能编写一个脚本来使其像后期用户点击一样 我想我必须使用这个或自己的关键字,但我不确定如何..帮助PLZ

1 个答案:

答案 0 :(得分:0)

将供认块移动到单独的部分。然后将该部分包装在div中。然后在你的ajax脚本中你可以重新加载部分。

查看:

<div id=confessions>
  <%= render 'confessions' %>
</div>

的Ajax

$('#confessions').html("<%= escape_javascript(render 'confessions') %>")

另外,你确定要制作喜欢/不喜欢的GET请求吗?我想你应该在这里发一个POST请求。