2012-04-26 4 views
1

Я пытаюсь выполнить базовую авторизацию пользователя с помощью CanCan и по какой-то причине уже зарегистрированный пользователь после отправки обновления в свой профиль, выйдет из системы.Devise + CanCan, Записанный пользователь выходил автоматически после метода обновления

Я не могу понять, почему это происходит.

Мои ability.rb

class Ability 
    include CanCan::Ability 

    def initialize(user) 
    user ||= User.new # guest user (not logged in) 
    can [:welcome, :read, :create, :new], User 

    if user.role == 'member' 
     can :manage, User, :id => user.id 
    end 
    end 
end 

И мой update метод от UsersController

def update 
    if @user.update_attributes(params[:user]) 
    flash[:success] = "Profile saved!" 
    #sign_in @user // tried this with no lucky, it still signing out 
    redirect_to @user 
    else 
    render 'edit' 
    end 
end 

Как вы можете видеть, это довольно простой.

Появляется сообщение flash, и redirect также работает должным образом.

Любая идея?

ответ

0

Я забыл добавить before_filter :authenticate_user! к моему UsersController

Он сейчас работает. Спасибо

0

Я не могу найти ошибку в вашем коде. Я думаю, вам нужно найти проблему где-то в другом месте. Например, вы можете показать свой хэш-код params? И покажите журналы SQL во время обновления @user.

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