1

私たちはアプリで Devise gem を使用しており、gem のプロセスで契約の承諾をどのように追加できるか疑問に思っています。

Devise はそれを行わないので、私たちは 2 つの解決策を考えました。

  1. ユーザーがサインインすると、一時的に EULA ページにリダイレクトされます (Devise の @resource を使用)。受け入れた場合、サインインは成功し、ユーザーはアプリに入ります。拒否された場合、ユーザーはログイン ページでスタックします。

  2. ユーザーがサインインすると、アプリに入り、同意する必要がある EULA ページが表示されます。次に、彼が受け入れるかどうかに応じて、「はい」または「いいえ」のフラグを渡します。そうでない場合は、サインイン ページにリダイレクトされます。

2 番目の解決策は最も簡単な解決策ですが、少し安全ではないと感じています (サーバーの負荷が役に立たないのではないでしょうか?)。

最初のものの方が優れていますが、これを行うのに役立つドキュメントやヒントが見つからず、行き詰まっています。

誰かが同様のものを開発しましたか?ベストプラクティスは何ですか?

ありがとう!

4

1 に答える 1

2

2番目のオプションはよりクリーンだと思います.usersテーブルにboolフィールドを作成し、それをチェックして(ログイン時またはすべてのリクエストで-> before_filter)、設定されていない場合はリダイレクトします。そうすれば、eula を変更し、ユーザーがそれを再度受け入れる必要がある場合、users テーブルのすべての bool フラグをクリアして、ユーザーに新しいバージョンを受け入れるように強制できます。

于 2013-09-20T10:19:47.367 に答える