2011-06-20 50 views
4

我正在使用Devise爲我的用戶登錄到我的Ruby on Rails 3.0.9 Web應用程序。我不熟悉會議的工作方式。它們由瀏覽器管理,而不是應用程序權限?Ruby on Rails - Deivse - 查看當前登錄用戶

我想獲得當前在線用戶的列表。最後做一些後臺程序來自動更新這個列表。

我該如何做到這一點?有沒有一種寶石可以提供幫助?

謝謝

安迪

回答

2

一種方法是有一個列last_seen_at並在current_user方法更新列:

def current_user 
    # Stuff... 
    @current_user.update_attributes(:last_seen_at => DateTime.now) 
    @current_user 
end 

然後考慮任何人誰是最後一次出現在最近5分鐘爲「當前登錄」。

+1

您可以使用devise:trackable從devise中獲取此行爲。 https://github.com/plataformatec/devise –

+0

謝謝mischa,看起來這將是一個很好的方法來做到這一點。有一個before_filter在每個請求前更改該值,然後比較時間。謝謝! – ardavis

+0

我想我只是覺得在每個任務中更新這個屬性都是很多的。設置這樣一個簡單的值會損失多少性能?讓我知道是否有其他方法來實現我的願望。再次感謝! – ardavis