Devise + CanCan,记录用户在更新方法后自动退出

时间:2012-04-26 15:35:26

标签: ruby-on-rails devise cancan

我正在尝试使用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也按预期工作。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我在代码中找不到错误。我想你需要在其他地方找到问题。例如,你能展示你的params哈希吗?并在@user更新期间显示SQL日志。

答案 1 :(得分:0)

我忘了将before_filter :authenticate_user!添加到UsersController

现在正在运作。感谢