2013-04-06 42 views
-1

我正在用Rails創建一個應用程序,其中有可以被用戶喜歡的帖子。我爲喜歡創建了一個不同的表,所以我有以下結構。在Rails的最後一天找到最受歡迎的帖子

POSTS -> id 
     -> title 
     -> text 
     ... 

     belongs_to :user 
     has_many :likes 

USERS -> id 
     -> email 
     -> name 
     ... 

     has_many :posts 
     has_many :likes 

LIKES -> id 
     -> post_id 
     -> user_id 
     ... 

     belongs_to :user 

現在,在首頁我要顯示在過去24小時最喜歡的職位,由他們有多少喜歡所訂購。我還使用爲我的Post模型提供分頁的Kaminari寶石。

那麼,我應該如何使用這些參數獲得帖子?

def popular 
    @posts = ? 
end 

回答

1

我沒有我的軌道ENV目前這臺電腦上,而是試圖玩弄這樣的:

@posts = Post.joins("LEFT OUTER JOIN Likes ON likes.post_id = posts.id 
        AND likes.created_at >= DATETIME('now', '-1 day')") 
        .group("posts.id").order("COUNT(likes.id) DESC") 
+0

我得到以下錯誤:'的SQLite3 ::的SQLException:接近「1」 :語法錯誤:' – 2013-04-07 00:49:05

+0

看到第二個:partial:解決方案 – Zippie 2013-04-07 00:56:12

+0

它的工作,但它只顯示有多個類似的帖子。另外,我現在應該怎麼做才能顯示最後一天的帖子? – 2013-04-07 01:06:31