0

我知道我可以使用「for」或「each」循環來做到這一點,並將結果限制爲最近20位用戶,但最好使用哪些數據來確定用戶如何被識別爲最近/活動?如何在我的主頁上顯示活動/最近的用戶..但以服務器友好的方式?

也許每次用戶發送消息更新updated_at列在哪裏? 每次用戶登錄更新會話或什麼?

不太確定這樣做的最好方法是什麼..也許更新users表中的updated_at列發送消息,留下評論..不太確定什麼是最好的方式來做到這一點。

將用戶圖像放在小盒子的主頁上,看起來不錯,但我不知道一旦啓動,這會如何影響我的服務器。

我記得twitter在這之後做了一段時間,然後稍後從他們的主頁中刪除了這個功能。

無論如何感謝提前。

親切的問候。

回答

3

只需使用:touch => truedocumentation)。我認爲這是一個很好的方式來做到這一點。

class Message < ActiveRecord::Base 
    belongs_to :user, :touch => true 
end 
0

一致的方法是在登錄時更新lastseen(timestamp)列(用戶talbe)。當會話超時你再次更新。通過排序「lastseen desc」和一個限制,您可以簡化最近的列表。

+0

但是,當用戶使用「記住我」複選框時,會怎麼樣?防止會話超時直到他們註銷。 – LondonGuy 2012-03-10 15:52:30

0

在您的ApplicationController中創建一個空的會話。

當用戶登錄時,使用散列將user_id和時間保存爲先前創建的會話中的lasttimeseen。

在您的ApplicationController中創建一個before_filter,以確保更新lastimeseen。

這個想法是有一個獨特的會話,其中包含所有登錄的用戶和上次執行操作的時間。

一旦你有了這個,你可以獲取最近20個最近的用戶。

相關問題