Rails 关于 Devise 的用法

easonlovewan · 2015年09月15日 · 最后由 yangman_wenzhu 回复于 2015年10月22日 · 2264 次阅读

我的后台权限是基于 devise 做的,现在有一个 bug 是这样的: 有一个修改管理员信息的功能,当我提交完某个管理员的信息时, 并没有到展示管理员的页面,而是到重新登录的页面。。。。。 这时候是不是要在执行 update 的时候做一个操作,不让操作修改的管理员重新执行登录操作。 求大神指点。。。。

不修改密码是不会跳转到重新登陆页面的吧

#1 楼 @a4652097 没有修改密码,改了其它属性也是重新登录了。。。。。

#3 楼 @ken 两种方式都试了貌似还是不行啊,,,,

def update
    @page_title = "修改管理员信息"
    @staffer = Admin::Staffer.find(params[:id])

    #(1)sign_in(current_admin_staffer, :bypass => true)

    #(2)
    #sign_out(current_admin_staffer)
    #sign_in(:id, current_admin_staffer, :bypass => true)

    if @staffer.update(admin_staffer_params)
      redirect_to admin_staffers_path, notice: "修改成功"
    else
      render :action => :edit
    end
  end

我觉得应该把 sign_in 放在 update 后面

#5 楼 @ken 依然不行。。。。。醉了!

你这个 update 所在的 controller 第一行应该有before_filter :authenticate_user 并且你应该看下你的 current_user 里面存储的是什么?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号