2012-04-26 23 views
1

CanCanで基本的なユーザー認証を試みていますが、何らかの理由で既にログインしているユーザーがプロファイルに更新プログラムを送信した後、Devise + CanCan、更新後にログアウトしたユーザーが自動的にサインアウトする方法

なぜこのようなことが起こっているのかわかりません。 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 

から

マイ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方法あなたが見ることができるように、それはかなり基本的なのです。

flashメッセージが表示され、redirectも期待どおりに動作しています。

答えて

0

私はそれが今働いている私のUsersController

before_filter :authenticate_user!を追加するのを忘れています。ありがとうございました

0

コードでエラーが見つかりません。私はあなたがどこか別の問題を見つける必要があると思う。たとえば、paramsハッシュを表示できますか? @userの更新中にSQLログを表示します。

関連する問題