ruby-on-rails – 使用Devise进行管理员用户管理
我第一次尝试Devise.我想要做的一件事是为管理员用户创建,查找和编辑用户提供一个界面.这是我可能出错了的地方.
我创建了一个PeopleController类,该类继承自ApplicationController,它列出了人员,并提供了创建和更新用户的方法和视图.一切都正常,一个例外.当管理员用户更新自己的记录时,会话被清除,保存后必须重新登录. 在这个应用程序中,我没有使用可注册模块.只有管??理员用户可以创建新的用户.设计用于提供用户管理工具的正确方法是什么?创建我自己的控制器似乎是错误的路径. 在此先感谢您的帮助. 解决方法
非常感谢您的帮助.这本质上正是我在做什么我发现了一个线索,帮助我解决了在这个维基编辑自己的记录时用户会话被清除的问题:
https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit-their-account-without-providing-a-password 这是我需要的那一行: sign_in resource_name,resource,:bypass => true 这个方法位于Devise :: Controllers :: Helpers中,所以我在控制器中这样做. class PeopleController < ApplicationController include Devise::Controllers::Helpers 然后在我的更新方法中,只有当current_user.id等于正在编辑的id时才调用它: def update @person = User.find(params[:id]) if @person.update_attributes(params[:user]) sign_in @person,:bypass => true if current_user.id == @person.id redirect_to person_path(@person),:notice => "Successfully updated user." else render :action => 'edit' end end 现在如果当前用户编辑自己的记录,则会话在保存后被还原. 再次感谢您的回应. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |