0

Rails 3 の RESTful なデザインには、さまざまなアカウント管理ページがどのように適合しますか?

たとえば、ユーザーが登録 (作成アクション) すると、登録成功ページ (? アクション) に転送され、トークン付きの URL (電子メールで送信) を介して電子メール アドレスを確認するように求められます。

電子メールのリンクをクリックすると、技術的には、検証プロセスの一環としてアカウントを「更新」していますよね? だから私はそれがどういうわけか「更新」アクションにマップされると思っていますが、更新アクションは PUT リクエストを期待しています。あれは正しいですか?メールでそれをどのように機能させますか?

また、パスワードを忘れた、パスワードをリセットしたなども RESTful 設計にどのように適合するのだろうか? これについて頭を包み込もうとしているだけです。

4

2 に答える 2

1

結果のデザインがあるからといって、Get / Post / Put / Deleteに1:1でマップするCRUD動詞のみに制限する必要があるという意味ではありません。とは言うものの、本当にRESTfulになりたいのであれば、これらのいくつかを独自のリソースとして考えることができます。たとえば、ユーザーの確認:

  • ユーザーがサインアップすると、確認メールが送信されます。すでにすべてが二乗されています。
  • 検証URLは次のようになります:http ://app.com/user_verifications/new?token = foobar (GET)
  • それらはURLに従い、「こんにちはダン、おかえりなさい!アカウントを確認するにはここをクリックしてください」と表示される可能性があります。その時点でフォームをhttp://app.com/user_verificationsに送信して、そこで作成アクションをトリガーします。これで、バックエンドで、ユーザーを更新したり、アクティブに設定したり、実際に「UserVerification」モデルを作成したりして、必要なアクションを実行できます。

完璧な例ではありませんが、提供しているRESTfulインターフェースには追加のリソース(この場合は「user_verifications」)があり、ユーザーはユーザーの目標を達成するためにHTTPメソッドを介してそれに基づいて行動しています。同様のロジックを適用して、「UserSession」タイプのリソースを使用するか、特定の「ForgotPassword」リソースと同じくらい具体的なパスワードをリセット/忘れ​​ることができます。

于 2011-04-23T23:50:21.527 に答える
0
  1. 成功ページは単なるcreate.html.erbファイルです。通常は作成アクションからリダイレクトしますが、ここでは成功テンプレートをレンダリングするだけです。

  2. 確認中。REST のままにしたい場合は、もう 1 つのステップを追加する必要があります。トークンが存在するフォームはどこにあるのかを確認してください。これにより、PUTupdateアクションが実行されます。ユーザーはこのページへのリンクを受け取ります。

    ただし、ここでは単純な GET リクエストを使用することを好みます。これにより、追加のクリックなしで情報が更新されます。

  3. パスワードやその他の機能を復元する場合と同じ方法です。メールを受け取るフォーム付きのページを追加してから、トークンなどで埋められたフォーム付きのページへのリンク付きの手紙を送信します。

于 2011-04-23T23:57:57.647 に答える