2013-04-05 3 views
0

Учебник Mike Hart по добавлению авторизации представил нижеприведенный код (link). Почему метод update звонит sign_in @user. Это кажется излишним для меня, поскольку before_filter :correct_user должен гарантировать, что клиент подписан из-за current_user?(@user) способом correct_user.Обновление авторизации (Ruby on Rails Tutorial)

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 

ответ

0

Поскольку пользователь вынужден обновлять свой пароль при обновлении атрибутов, это означает, что их текущий вход недействителен.

+0

Ах, вы правы. Я забыл изменения remember_token после сохранения пользовательской модели. – user782220

Смежные вопросы