0

承認の追加に関する Mike Hart のチュートリアルでは、以下のコードが提示されました (元のコード リストへのリンク)。updateメソッドが を呼び出すのはなぜですかsign_in @user。in methodbefore_filter :correct_userのためにクライアントがサインインしていることを保証する必要があるため、これは冗長に思えます。current_user?(@user)correct_user

class UsersController < ApplicationController
  before_filter :signed_in_user, only: [:edit, :update]
  before_filter :correct_user,   only: [:edit, :update]
  .
  .
  .
  def edit
  end

  def update
    if @user.update_attributes(params[:user])
      flash[:success] = "Profile updated"
      sign_in @user
      redirect_to @user
    else
      render 'edit'
    end
  end
  .
  .
  .
  private

    def signed_in_user
      redirect_to signin_url, notice: "Please sign in." unless signed_in?
    end

    def correct_user
      @user = User.find(params[:id])
      redirect_to(root_path) unless current_user?(@user)
    end
end
4

1 に答える 1

0

ユーザーは属性を更新するときにパスワードを更新する必要があるため、現在のログインが無効になります。

于 2013-04-05T09:43:21.290 に答える