我正在尝试使用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 :(得分:0)
我在代码中找不到错误。我想你需要在其他地方找到问题。例如,你能展示你的params
哈希吗?并在@user
更新期间显示SQL日志。
答案 1 :(得分:0)
我忘了将before_filter :authenticate_user!
添加到UsersController
现在正在运作。感谢