首先計算器後,所以和我一起承擔:)如何訂購陣列通過變量視圖
所以我必須具有多態關聯帶票模型中郵模型。
我的主要問題是以最高票數排序每篇文章。我正在嘗試實施Upvote系統。問題:如何訂購最高票數? (@total)
看來我的代碼在我的意見(@upcount,@downcount,@total),我可能在我的控制器,但我只是不知道如何做到這一點。
理想情況下,我想在社區操作中做這樣的事情:Post.order(「@ total」),但顯然這不起作用。
郵政型號
class Post < ActiveRecord::Base
belongs_to :user
has_many :votes, :as => :votable
投票模式:
t.integer "upvote"
t.integer "downvote"
t.string "votable_type"
t.integer "votable_id"
t.integer "user_id"
柱控制器:
def community
@post = @votable = Post.all
end
在我看來,頁面(這裏的事情變得棘手):
<% @post.each do |post| %>
<div class="eachpostrate">
<% if signed_in? then %>
<%= form_for [post, Vote.new] do |f| %>
<%= f.hidden_field :downvote, :value => "0" %>
<%= f.hidden_field :upvote, :value => "1" %>
<%= f.submit "8", :class => "upvotethumbup" %>
<% end %>
<% if post.votes.empty? then %>
<span class="upvotecount">
<p> 0 </p>
</span>
<% else %>
<% @upcount = [] %>
<% @downcount = [] %>
<span class="upvotecount">
<p>
<% post.votes.each do |vote| %>
<% @upcount << vote.upvote %>
<% @downcount << vote.downvote %>
<% end %>
<% @total = @upcount.sum - @downcount.sum %>
<%= @total %>
</p>
</span>
<% end %>
我解決了這個使用nilbus與把比分方法在我的崗位模型,而不投票型號
的def score
self.votes.upvotes.count - self.votes.downvotes.count
end
否則,我的職位是根據現在給予好評有序的例外規定的方向!感謝大家!
這不考慮upvotes和downvotes –
你是對的!日Thnx。 – earlonrails
另外,你知道你可以使用sort_by並避免不得不列出你比較兩次的東西嗎? posts.sort {| x | x.votes.collect(&:upvote).size - x.votes.collect(&:downvote).size}讓它更容易閱讀:-) –