我正在創建應用程序,其中包含課程/測試,現在我需要創建包含一些信息的報告卡。我想向用戶添加列,以便跟蹤在線時間(無空閒時間)。例如,學生按下網站上的任何按鈕(例如),這意味着學生在線並且(current_user.online_time不應該停止),但是如果學生沒有超過5分鐘 - (current_user.online_time應該停止)。我發現了一塊寶石devise lastseenable,但無法想象知道如何使它按照我的意願工作。當U僅在用戶(創建/更新/刪除/或與屬於用戶的模型)做任何動作時追蹤任何其他動作。有人可以給我任何想法嗎?如何跟蹤用戶是否進行任何操作Rails應用程序
0
A
回答
1
無需使用專門爲此目的而構建的外部gem,就可以組合一個簡單的用戶跟蹤功能。下面是所需的實施步驟的列表:
1. total_time_online
和last_seen_at
字段添加到User
total_time_online
將包含的秒數,用戶在網上看到last_seen_at
會保存用戶上次與網站互動的日期和時間
2.將active_now!
方法添加到User
只要用戶正在與網站進行交互,就會調用此方法。它負責遞增total_time_online
值和更新last_seen_at
領域:
class User
ActivityThreshold = 5.minutes
# ...
def active_now!
time_since_last_activity = [Time.now - last_seen_at, 0].max
if time_since_last_activity <= ActivityThreshold
self.total_time_online ||= 0
self.total_time_online += time_since_last_activity
end
self.last_seen_at = Time.now
save!
end
# ...
end
這隻會遞增total_time_online
如果最後的互動小於5分鐘前。
3.在每次請求當前用戶呼叫active_now!
的全球before_action
應該做的伎倆:
class ApplicationController < ActionController::Base
# ...
before_action :record_user_activity
# ...
private
# ...
def record_user_activity
current_user.active_now! if current_user
end
end
+0
謝謝你的回答!它工作正常。我們在應用程序控制器之前添加動作,但我不需要在我的應用程序的視頻觀看頁面上記錄用戶活動。如何才能在操作之前刪除1個控制器? –
+1
使用'skip_before_action'選擇性跳過特定控制器中的before操作。 –
相關問題
- 1. 用戶操作流程是否可以通過谷歌分析進行跟蹤
- 2. 我如何跟蹤任何應用程序在PC上的操作
- 3. 跟蹤用戶操作 - 應用程序分析
- 4. 跟蹤用戶在業務應用程序中的操作
- 5. 是否有任何GTD應用程序與任何常見的錯誤跟蹤應用程序同步?
- 6. 如何跟蹤使用Google Analytics的用戶使用MFMailComposeViewController進行的操作?
- 7. 如何爲Ruby on Rails應用程序啓用跟蹤
- 8. 如何跟蹤應用程序安裝?
- 9. 用戶跟蹤應用程序被
- 10. 跟蹤應用程序安裝程序操作的工具? (Win)
- 11. 如何跟蹤阻止應用程序並刪除應用程序的用戶?
- 12. 即使應用程序關閉,Android應用程序如何跟蹤用戶?
- 13. 如何在Android應用程序中跟蹤用戶邀請?
- 14. 如何跟蹤iPhone應用程序用戶的數量?
- 15. 如何跟蹤內部symfony2應用程序的用戶位置?
- 16. 如何跟蹤android應用程序用戶的位置
- 17. 如何跟蹤iPhone應用程序的應用程序活動
- 18. 使用SignalR時跟蹤用戶操作
- 19. 使用omniture sitecatalyst跟蹤用戶操作
- 20. 如何從rails中的應用程序獲取堆棧跟蹤?
- 21. 總是在android/iphone應用程序中進行企業跟蹤
- 22. C#應用程序是否跟蹤其運行的時間?
- 23. 使用計時器在Spring Web應用程序中跟蹤用戶操作
- 24. 在一個ASP.net數據訪問應用程序中跟蹤用戶操作
- 25. REST中的用戶操作跟蹤
- 26. 如何使用Monad.Writer進行跟蹤?
- 27. 如何使用strace跟蹤子進程?
- 28. SPSecurity.RunWithElevatedPrivileges是否在控制檯應用程序中執行任何操作?
- 29. 跟蹤Web應用程序
- 30. 跟蹤應用程序
你的ApplicationController和before_action過濾器? –
你有沒有考慮過只爲谷歌分析這樣的東西?您是否真的需要一個自定義解決方案來跟蹤整個網站的特定用戶和特定規則? –
我的應用程序將由學生使用,我需要跟蹤他們有用的在線活動@TomLord –