我正在尝试创建一个投票系统。正在投票的模型是问题,我有另一个名为 Vote 的模型,它拥有 issue_id 和 0 或 1 的投票值。投票是使用带有隐藏字段的表单创建的。这是在问题索引视图上。
<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 关系。我想在每个问题的按钮旁边显示赞成票和反对票的数量。所以我需要为每个问题拉出所有投票 = 1 的选票,以及所有投票 = 0 的选票,并计算每个问题。也想知道总票数。我该怎么做?我在问题模式中的投票模型问题关联和 votes_count 列上设置了 counter_cache。这项工作应该在控制器还是模型中完成?