3

簡単な質問です。何が好まれるのか、その理由は何ですか、それともまったく問題ではありませんか? ソーサリー ジェムの例:

if @user.save
  redirect_to index_path
  auto_login(@user)

また

if @user.save
  auto_login(@user)
  redirect_to index_path

場所を飛ばすだけで、1行はそれほど重要ではないかもしれませんが、より良い、より安全な、なぜ、またはそれほど重要ではないのですか?

4

2 に答える 2

0

最初にログインし、後でリダイレクトします。

リダイレクト先の場所は、ログインしているユーザーによって異なる場合があります。それはあなたの場合ではないかもしれませんが、他の場合には可能であり、後であなたのアプリケーションの開発の中でそれは可能性があります。

たとえば、ユーザーがログインしているかどうかに応じて別の場所に移動するようにインデックスルートを変更した場合、リダイレクトの前後にログインするかどうかが非常に重要になります。リダイレクト後にログインすると、ログインしていないユーザーのルートのバージョンにリダイレクトされます。

于 2013-01-22T17:19:02.000 に答える
0

redirect_to呼び出しに有効な引数を指定している限り、順序はそれほど重要ではありません。redirect_to有効な引数を指定しないと例外がスローされるため実行されませんが、オプションを渡すなどのかなり間違ったことを行っていないか、メソッドを既に呼び出していない限りauto_login、エラーは表示されません。redirect_tonilredirect_to

redirect_to制御フローの観点からは理にかなっているので、最後に来ることを好む傾向があります。これにより、コントローラー アクションですべてのコードを実行した後に Rails がどこに移動するかについての一般的な感覚が得られます。redirect_toまた、複数回呼び出してDoubleRenderError.

redirect_to のドキュメントを見て「ソースを表示」リンクをクリックすると、基本的には変数を設定するだけなので、好きな場所で呼び出すことができます。redirect_toは、他の言語で見られるステートメントに似ていreturnますが、そのようには機能しないので、覚えておいてください。これは、コントローラーに何らかの状態を設定する単なるメソッドです。

于 2013-01-22T16:58:49.610 に答える