0

"for"または "each"ループを使用してこれを行うことができ、最近の20人のユーザーのように結果を制限することができますが、ユーザーが最近/アクティブとして認識される方法を決定するのに、アクティブ/最近のユーザーをホームページに表示するにはどうすればよいですか?

ユーザーがメッセージを更新するたびにupdated_at列を送信します。 ユーザーがログインするたびにセッションなどを更新しますか?

これを実行する最良の方法は何かわかりません..メッセージを送信したときにユーザーテーブルのupdated_at列を更新して、コメントを残してください。これを行うにはどうすればよいでしょうか。

小さな箱でホームページにユーザーの画像を表示すると、デザインはすばらしく見えますが、起動後にサーバーにどのように影響するかはわかりません。

これは少し後にこの機能をホームページから削除したことを覚えています。

とにかく前もって感謝します。

大切にしてください。

答えて

3

:touch => truedocumentation)を使用してください。これを行うには良い方法だと思います。

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

一貫性のある方法は、ログイン時にlastseen(タイムスタンプ)列(ユーザータルベ)を更新することです。セッションタイムアウトが再び更新されたとき。並べ替え "lastseen desc"と制限を使用すると、最近のリストを簡単にすることができます。

+0

しかし、ユーザーが「私を覚えてください」チェックボックスを使用すると、セッションがログアウトするまでタイムアウトしないようにするのはどうでしょうか? – LondonGuy

0

ApplicationControllerに空のセッションを作成します。

ユーザーがログインしたときに、前に作成したセッション内で、ハッシュを使用してuser_idと時刻をlasttimeseenとして保存します。

ApplicationControllerにbefore_filterを作成して最後の更新を確実にしてください。

アイデアは、ログインしたすべてのユーザーと最後に実行されたアクションの時間を含む一意のセッションを持つことです。

これを取得すると、直近の20人の最新のユーザーをフェッチできます。

関連する問題