投票システムを作ろうとしています。投票されているモデルは課題であり、私は issue_id と 0 または 1 の投票値を保持する Vote と呼ばれる別のモデルを持っています。投票は非表示フィールドを持つフォームで作成されています。これは問題のインデックス ビューにあります。
<h1>Votes</h1>
<% @issues.each do |issue| %>
<li>
<div class="issue">
<h2><%= issue.title %></h2>
<p><%= issue.body %></p>
<%= form_for(@vote, :remote => true) do |f| %>
<%= f.hidden_field "issue_id", :value => issue.id %>
<%= f.hidden_field "vote", :value => 1 %>
<%= submit_tag "Up", :class => 'up-vote' %>
<% end %>
<%= form_for(@vote, :remote => true) do |f| %>
<%= f.hidden_field "issue_id", :value => issue.id %>
<%= f.hidden_field "vote", :value => 0 %>
<%= submit_tag "Down", :class => 'down-vote' %>
<% end %>
</div>
</li>
<% end %>
課題と投票の間には、has_many と belongs_to の関係があります。各号のボタン横に賛成票と反対票の数を表示したい。したがって、それぞれの問題について、vote = 1 のすべての投票と、vote = 0 のすべての投票を取得し、それぞれをカウントする必要があります。総投票数も知りたいです。どうすればいいですか?私は、投票モデルの課題の関連付けと、課題スキーマの votes_count 列に counter_cache を設定しています。この作業はコントローラーまたはモデルで行う必要がありますか?