我想在产品(stackoverflow样式)的评论上实现AJAX Upvote/Downvote。将Rails变量传递给AJAX调用
我每次审查产生的部分投票:
_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' %>");
});
所以,当用户点击给予好评,该部分将被重新渲染以显示新的投票计数。
问题是,页面中有很多评论。在AJAX调用之后,JavaScript不知道哪个评论的投票偏重于重新呈现。 ($('#vote_id ???')部分)
Rails是否有任何方式将评论ID传递给JavaScript?
或实现此功能的任何其他替代方法。
在此先感谢!
你并不需要准备一个文件包upvote.js.erb ,因为在AJAX请求触发时文档应该已经准备就绪。 –
请向我们展示upvote操作的代码。理想情况下,应该在其中定义一个'@ review'变量,可以使用它。 –