このような通知システムを実装するには多くの方法があります。要件は非常に基本的なものなので、使用する基本的なアプローチに固執しますflash
初回ログイン時にメッセージを表示:
ユーザーの最後のログインを追跡し、おそらくログインをカウントする必要があるため、次のことができます。
ユーザーがログインするたびに更新されるフィールド「last_login_at」をユーザー モデルに追加し、登録後に NULL に設定します。ユーザーがログインすると、last_login_at
NULL かどうかを確認し、そうであればフラッシュにメッセージを設定しますflash[:first_login] = true
。このフラグが設定されている場合は、テンプレートに特別なウェルカム メッセージを表示できます。
より良いアプローチはlogin_counter
、ユーザーがログインするたびにインクリメントされるようなフィールドを追加することです。そのため、ゼロの場合、ユーザーは初めてログインしています。ログインカウンターは、頻繁にログインする「アクティブな」ユーザーを特定するのにも役立ちます。
これらの (およびその他の多くの) 機能が組み込まれている、devise と呼ばれる一般的な認証システムがあります: https://github.com/plataformatec/devise
メンテナンス警告などを表示します。
SystemMessage
次のようなフィールドを持つ新しいモデルを作成します。
id | message_type | title | body | valid_from | valid_until
このmessage_type
属性は、さまざまなテンプレートをレンダリングしてメッセージの外観を調整できるメッセージのタイプに応じて、「メンテナンス通知」、「新機能」などのようなメッセージの種類を記述します。
valid_from
およびvalid_until
属性を使用すると、メッセージを表示する時間枠を制御できます。
これらのメッセージをフェッチしてユーザーに表示するリクエストごとに、定期的にメッセージをキャッシュして、クエリの量を減らすこともできます。キャッシングに関する Rails ガイドをご覧ください: http://guides.rubyonrails.org/caching_with_rails.html
ページでアイドル状態であることをユーザーに通知するには、約 5 分ごとに起動する AJAX リクエストを実装し、メッセージを取得して、既に表示されているメッセージよりも新しいメッセージがあるかどうかを確認します。
ユーザー固有のメッセージ (新着メールが 5 件届いた、投稿に誰かがコメントしたなど) をリアルタイムで表示する必要がある場合は、'Faye' (チュートリアル: http://railscasts ) のような pub-sub メッセージング システムを使用できます。 .com/episodes/260-messaging-with-fayeまたは「rails 3 faye」でググってください)
これがあなたの出発点になることを願っています:)