2013-01-02 67 views
5

假設用戶在網站上花費很長時間。
如何獲取用戶的最後活動時間。 上次活動時間是指請求(訪問該頁面,用戶甚至不需要更新或創建新記錄)到應用程序的用戶的上次時間戳。如何在使用Devise時獲取用戶的上次活動時間?

用戶可能在大約一小時前登錄。然後,他仍然在我的網站上網。 我想要用戶發送上次請求的時間。

可能嗎?

設計有current_sign_in_at但不是最後的活動時間。

回答

18

我會實現這個的方法是一個last_active_at日期時間列添加到用戶模型,然後把東西在我的控制器:

class ApplicationController 
    before_filter :record_user_activity 

    private 

    def record_user_activity 
    if current_user 
     current_user.touch :last_active_at 
    end 
    end 
end 
+0

它的工作完美!謝謝!! – cat

+0

我使用ajax的setInterval,所以每次它自動重新加載,它會更新這個** last_active_at **我如何設置它的異常?該操作是'community#refresh' – cat

+1

如果您使用setInterval定期將AJAX調用發送回服務器並獲取新數據,那麼您不需要執行任何操作。即使通過AJAX進入社區#刷新操作,該過濾器仍然會運行,只要用戶啓用了Cookie並且沒有任何其他操作可能會中斷用戶會話。 –

相關問題