我想对产品评论(stackoverflow 风格)实施 AJAX Upvote / Downvote。
每次评论都会产生部分投票:
_vote.html.erb
<div id="vote_<%= review.id %>" class="vote">
<%= link_to 'Vote Up', upvote_kata_review_path(@product, @review), :class => "upvote", :method => :post, :remote => true %>
<span><%= review.plusminus %></span> <!--show the current vote-->
<%= link_to 'Vote Down', downvote_kata_review_path(@product, @review), :class => "downvote", :method => :post, :remote => true %>
</div>
和一个 upvote.js.erb
$(document).ready(function(){
$('#vote_id???').html("<%= escape_javascript render :partial => 'votes/vote' %>");
});
所以当用户点击 upvote 时,partial 将被重新渲染以显示新的投票数。
问题是,一个页面中有很多评论。在 AJAX 调用之后,JavaScript 不知道哪个评论的投票偏向于重新呈现。( $('#vote_id???') 部分)
Rails 有没有办法将评论 ID 传递给 JavaScript?
或实现此功能的任何其他替代方案。
提前致谢!