2012-07-16 78 views
5

我希望能夠顯示帖子,並按照一對夫婦的標準進行排序,首先是他們對他們的投票數量,其次是創建日期。我不希望超過一週的帖子被顯示,因此只有上週的帖子。我試着這樣做:只顯示上週創建的帖子

<%= render @posts.sort_by { |post| post.votes.count if post.created_at < 1.week.ago.utc }.reverse %> 

,但它給了我NilClass的比較的錯誤與失敗2

我知道代碼的工作原理是剛剛整理帖子的投票,但我也希望限制時間,以便能有人告訴我如何做到這一點。我還是新來的,所以對於簡單感到抱歉。

+0

我認爲你的條件顯示不超過我本週的職位應該是如果post.created_at> 1.week.ago.utc。和nilClass錯誤可能是因爲你試圖訪問您的查詢中的某些東西不存在於數據庫中 – 2012-07-16 05:28:13

回答

2

查找帖子的代碼應該在模型中,而不是視圖中。 總是有一個好主意,你應該獲取我們需要顯示的記錄,而不是抓取記錄並在視圖上顯示一些記錄。 你應該做這樣的事情由@Salil您post.rb

def self.recent_posts 
    Post.select("p.*, COUNT(v.id) AS count").where("post.created_at >= 1.week.ago.utc").joins("p LEFT JOIN votes v on p.id=v.post_id").order("count, created_at DESC") 
end 
相關問題