2014-10-07 29 views
-2

我想計算特定用戶的每週登錄次數。現在我在我的Db用戶模型中有login_count。Rails如何查找每週登錄計數

我想查找每週,每月和每年最大登錄次數的用戶。

什麼是在Rails中實現這一點的好方法?

在User.rb

      :id 
         :name 
         :email 
      :persistence_token 
      :crypted_password 
       :password_salt 
        :school_id 
        :deleted 
        :created_at 
        :updated_at 
         :mobile 
        :year_id 
       :original_id 
     :subscription_status 
       :login_count 
      :failed_login_count 
      :current_login_ip 
       :last_login_ip 
      :current_login_at 
       :last_login_at 

現在我有一個tracking_logins模型捕捉USER_ID,login_time

現在我做了什麼,以獲取用戶的登錄數爲

 user_login_hash = school_logins.group(:user_id).count 

什麼我應該如何查找特定用戶的每週登錄次數? 任何幫助,將不勝感激

+1

爲了做到這一點,您需要重新考慮登錄計數方法。您不需要捕獲簡單的計數,您需要捕獲每次用戶登錄和日期。然後,您可以應用適當的登錄計數器並按日期範圍進行細分。 – AytanLeibowitz 2014-10-07 05:17:55

+0

其實我在我的模型中也有last_login_date。讓我編輯我的問題,以便更好地理解。謝謝。 – Suganya 2014-10-07 05:26:26

+0

我明白你的問題。上次登錄日期不足以找到具有最高登錄次數的用戶的數據。唯一的統計數據就是所有時間的最高登錄次數。 – AytanLeibowitz 2014-10-07 05:28:23

回答

0

我更喜歡使用devise gem用戶模型,如果你使用它,所以你可以使用devise-models-trackable的sign_in_count。

對於你的問題,你需要創建新的模型爲例Activity有這些字段user_id,login_datelogin_count

2

你可以看看「public_activity」寶石,它會更容易實現並完成任務。

希望這會有所幫助。