1

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期待どおりに機能しています。

何か案が?

4

2 に答える 2

0

before_filter :authenticate_user!に追加するのを忘れていましたUsersController

それは今働いています。ありがとう

于 2012-04-27T02:49:14.863 に答える
0

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

于 2012-04-26T18:31:16.397 に答える