2

製品のレビューにAJAX賛成/反対投票を実装したい(stackoverflowスタイル)。

レビューごとに部分的に投票が生成されます。

_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に渡す方法はありますか?

または、この機能を実装するための他の代替手段。

前もって感謝します!

4

1 に答える 1

4

@review私が思うように、アクションで変数が定義されている場合は、次のupvoteように実行できます。

$('#vote_<%= @review.id %>').html("<%= escape_javascript render :partial => 'votes/vote' %>");
于 2012-11-08T22:28:20.393 に答える