1

ユーザーにメッセージを 1 回表示するために使用できる gem やライブラリはありますか? 特に、次のことができるものを探しています。

  • ユーザーが初めてログインしたときに、「ようこそ」フル オーバーレイを表示します。(しかも初回のみ)
  • 今後 24 時間以内にメンテナンスが行われる可能性があること、または何かを行う必要があること (プロファイルの入力など) をユーザーに通知する小さなドロップダウン オーバーレイ。これは、却下されるまで表示されます。

これらの種類のメッセージが一般的に何と呼ばれているのかわからないため、これには少し行き詰まっています。この種の 1 回限りのメッセージには名前がありますか?

4

1 に答える 1

3

このような通知システムを実装するには多くの方法があります。要件は非常に基本的なものなので、使用する基本的なアプローチに固執しますflash

初回ログイン時にメッセージを表示:

ユーザーの最後のログインを追跡し、おそらくログインをカウントする必要があるため、次のことができます。

  • ユーザーがログインするたびに更新されるフィールド「last_login_at」をユーザー モデルに追加し、登録後に NULL に設定します。ユーザーがログインすると、last_login_atNULL かどうかを確認し、そうであればフラッシュにメッセージを設定します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」でググってください)

これがあなたの出発点になることを願っています:)

于 2012-08-26T11:33:08.083 に答える