私は基本的なupvotingとdownvotingのシステムを作成しました。私はupvotesとdownvotesを追跡する1つのトラックを保持する列を持っています。私はこれらの列を(おそらくヘルパーの方法で)引いて、2つの間で投票の集計を表示する方法はありますか?Railsで2つの列を集計する最良の方法
私はヘルパーでこれを試してみました:
<% @posts.each do |post| %>
<div class="panel">
<div class="panel-left">
<%= link_to 'Upvote', upvote_post_path(post), method: :patch, remote: true %>
<%= link_to 'Downvote', downvote_post_path(post), method: :patch, remote: true %>
<%= count_votes(post.up_vote, post.down_vote) %>
<%= post.title %>
<%= post.content %>
</div>
</div>
<% end %>
module PostsHelper
def count_votes(up, down)
@total = (up-down)
return @total
end
end
Index.html.erb
しかし、それはこのエラーを得られます。undefined method `-' for nil:NilClass
が行うための理想的な方法はありますこの?モデルで何かを使うべきですか?
恐ろしいです!ありがとうございました。だから、ヘルパーではなくモデルでこれを行うことをお勧めしますか? – tfantina
はい。モデルに属している必要があります。 –