我有兩個模型發佈和喜歡,有他們之間的關係。發佈has_many喜歡。我想要一個最佳的方式來找到哪個帖子最喜歡。通過如何獲得最大喜歡的帖子或發佈在喜歡計數軌道
count = {}
Post.includes(:likes).each do |post|
count[post.id] = post.likes.count
end
這樣做的一種方式起初我用數組這是不是一個很好的數據結構,所以我用哈希值,但仍然我不是這種類型的方法滿足。什麼是最好的喜歡的帖子。
此外,我已經嘗試了以下查詢,但它不按預期工作,所以任何人都可以建議一個更好的和最佳的方法。
Post.joins("LEFT OUTER JOIN Likes ON likes.post_id =posts.id").group("posts.id").order("COUNT(likes.id) DESC")
好方法,但由於應用程序已經有近300個帖子,我需要編寫一些腳本來更新現有的帖子嗎? – rank
300帖子不是很多。您不必編寫腳本,通常您會編寫一個rake任務(或在生產中使用'rails c')來運行'Post.all.each {| p | Post.reset_counters(p.id,:likes)}'(或任何你喜歡的關聯被命名)。它會在那之後自動更新計數。 – Eric
謝謝@eric – rank