Ich habe ein grundlegendes Upvoting und Downvoting-System in Schienen erstellt. Ich habe eine Spalte, die Upvotes verfolgt, und eine, die die Downvotes verfolgt. Gibt es eine Möglichkeit, diese Spalten zu subtrahieren (vielleicht als Helfer), um die Anzahl der Stimmen zwischen den beiden zu zeigen?Der beste Weg, um zwei Spalten in Rails zu vergleichen
Ich habe versucht, dies mit einem Helfer:
module PostsHelper
def count_votes(up, down)
@total = (up-down)
return @total
end
end
Index.html.erb
<% @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 %>
Aber das ergibt diesen Fehler:
undefined method `-' for nil:NilClass
Gibt es eine ideale Möglichkeit, zu tun Dies? Sollte ich etwas im Modell verwenden?
Super! Vielen Dank. Also empfiehlst du das im Modell anstatt als Helfer? – tfantina
Ja. Es sollte zum Modell gehören. –