2014-05-21 28 views
0

我有此代碼,我在討論中找到了特定的流行度排名,以便我可以在流行的討論頁面上對其進行排序。我遇到的問題是,當我完成時,我有一個表示流行度的int,但我需要將該int與其具體討論關聯起來,以便我可以將其流行字段更新爲true。我需要在沒有新遷移的情況下執行此操作。如何在不遷移新列的情況下製作模型關聯

軌道4

def discussion_rank 
    @discussions = Discussion.all 
    @total_rank = Array.new 
    @discussions.each do |discussion| 
    discussion.comments.each do |comment| 
    @total_rank << decay_time(discussion) + comments_rank(discussion) + reply_rank(comment) 
    end 
    end 
    @total_rank.sort {|x,y| y <=> x} 
    puts Discussion.find(@total_rank[0]) 
end 
+0

你能說清楚一點嗎? – bjhaid

回答

0

這聽起來像你可能想看看像sort_bymax_by東西。您可能希望將邏輯分成兩種方法,一種計算單個討論的等級,另一種找到最大等級的討論。像這樣的東西可能是你在找什麼...

# In the Discussion class 
def rank 
    # Logic to calculate rank for one discussion here 
end 

def self.max_rank 
    Discussion.all.max_by { |discussion| discussion.rank } 
end 

然後Discussion.max_rank將返回具有最高等級的討論。

相關問題