2

サイトでは非常に一般的です。データ/投稿/コメントでいっぱいのゲストアカウントを備えた「デモ」バージョンがあり、すべてのデータが数時間ごとにリセットされるため、ユーザーはデモサイトをスパムしません.

別のレール環境「mysite_demo」を用意し、cron ジョブを使用して rake を呼び出し、X 時間ごとにデータベースをリセットし、シード データを入力することを考えました。

次に、アプリ全体で「デモモード」で実行しているかどうかを確認する必要があることに気づきました。たとえば、デモサイトにログイン/登録ページもある場合、ユーザーは登録してデータを挿入する可能性がありますもう一度ログインした後、なぜ彼のアカウントが削除されたのか疑問に思います..したがって、デモサイトには登録オプションがまったくないはずです。

だから私はコードの「デモ」ブランチを作成すると思った..違いを加えて、変更をマージするだけです...やり過ぎのように聞こえます。

アイデア?

4

9 に答える 9

1

私のアプリケーションでは、1 時間ごとにリセットされるアカウントを持つ固定のデモ ユーザーから始めました。そのモデルのどこかがうまくいきませんでした。複数のユーザーが同時にデモにアクセスした場合、奇妙な並行性の問題が発生する可能性がありました。ユーザーがデモの途中で、デモ アカウントをリセットした場合はどうなりますか? 何が起こるのですか?

このモデルがうまくいくかどうかはわかりませんが、データベースにデモフラグが設定された新しいユーザーアカウントを作成することになりました-ユーザーも自動的にログインします。この方法で、ユーザーは彼らは気に入っており、ユーザーがアプリのデモを行っている間にデータが削除/変更されることを心配する必要はありません. 24 時間以上経過した demo フラグが設定されたユーザーを削除する cron ジョブを毎晩実行しています。

于 2009-09-09T00:37:39.113 に答える
0

独自のデータベースを備えた別のアプリとして別のドメインまたはサブドメインにデプロイしてから、ドメインをチェックして、使用可能なオプションを決定できます。たとえば、demo.example.comに配置すると、次のようになります。

if request.domain =~ /demo/

Capistranoを使用する場合は、デプロイ時に両方のアプリを更新して同期するように設定できます。

于 2009-09-09T05:07:39.117 に答える
0

デモ版と本番環境で異なる機能は他にありますか?ユーザー登録の問題だけの場合は、本番環境で登録済みのデモアカウントを作成し、ユーザー名/パスワードを公開するだけです。ただし、他のビジネス要件によっては、これはオプションではない場合があります。

于 2009-09-08T23:34:21.773 に答える
0

Authlogicを使用する場合は、これを確認できます。その後、X時間ごとに、データベースを調べて、anonymous_それらに関連付けられているレコードで開始および削除するユーザーを探すことができます。

于 2009-09-08T23:37:28.303 に答える
0

デモ版が独自のデータベースから実行されている場合、本物とどう違うのですか? デモ サイトは、製品の単なるインスタンスです。

DB をクリーンアップして、必要に応じてデモを再デプロイするだけです。これは単純ですか、それとも何か不足していますか?

于 2009-09-08T23:04:23.750 に答える
0

1 時間で削除されても、ユーザーがアカウントを作成できるようにしないのはなぜですか?
これにより、少なくとも 1 時間はスクリプトの登録プロセスがどのように機能するかを確認できます。サインアップ ページで、アカウントが 1 時間のみ有効であるというメッセージを表示することもできます。

ちょうど私の考え

于 2009-09-08T23:29:21.093 に答える
0

実稼働サイトとまったく同じように機能する別のデモ サイトを作成するだけですが、DB は 1 時間に 1 回リセットされ、サンプル データがクリーンアップされます。変更する必要があるのは、すべてのページの上部にあるデモであることを示すバナーだけです。いくつかの方法がありますが (サイトのテーマを変更するか、フレームを使用するなど)、基本的には、サイト全体ではなく、1 か所でコードを変更するだけで済みます。

于 2009-09-09T01:19:09.523 に答える
0

次に、アプリ全体で「デモモード」で実行しているかどうかを確認し(たとえば、デモに新しいユーザーを登録できない)、それに応じてサイトを動作させる必要があることに気づきました。

サイトがデモの場合、ユーザーが何をするかが重要なのはなぜですか? 彼らが行ったことはすべて数時間で消去されるため、実際に作業を行うことはできません.

彼らが支払うようにサイトをハンディキャップしようとしているようです. あなたのサイトが何をしているのかはわかりませんが、ホストベースのサービス(情報を保存および表示するWebページ)であれば、データの寿命が限られているため、不法占拠者を抑止するはずです.

あなたのウェブサイトが他の場所で使用できる何かをしている場合、それを制限することがわかります. 例としては、メディア形式を変換したり、履歴書を書いたりするサービスがあります。ユーザーが 2 時間の枠内で何か役に立つことをして、それをやめることができる場合は、分岐を検討することをお勧めします。

于 2009-09-08T23:12:31.537 に答える
0

User テーブルの読み取り専用権限と追加の demo_database を使用して、database.yml に新しい環境デモをセットアップできます。次に、コードをチェックして、RAILS_ENV が DEMO にあるかどうかを確認します。

そうすれば、同じコードベースで作業するだけで、気に入ったものを表示するだけで済みます。

于 2009-09-09T03:17:12.673 に答える