我正在开发一个rails应用程序,并使用一个名为design的gem来管理我的用户。我已经创建了一个名为"Admin"的新用户,但不确定如何将应用程序上的用户从"user"更改为"Admin"。
文件上写着:"下面的代码可用于授予当前用户管理员状态。">
current_user.update_attribute :admin, true
但是这个片段会去哪里呢?这是文档,管理员角色创建信息在页面底部附近。https://github.com/plataformatec/devise/wiki/How-To%3A-添加管理员角色
您已经非常接近解决方案了!没有什么比阅读文档更好的了:-)
通过使用Wiki页面上提到的选项2,应用程序中的用户将被分类作为"regular"或"admin",基于admin属性。Wiki页面为您提供了将管理员角色授予当前用户的代码,并由您决定在哪里调用此代码。
公平地说,因为用户如何成为管理员是每个应用程序特有的,这取决于用户希望如何实现。
一种方法是在GUI中执行"授予当前用户管理权限"操作,该操作将调用代码。在这种情况下,代码将进入"users_controller.rb"文件中的"grant_current_user_admin_rights"方法中。当然,视图和路线也应该相应地进行修改。
您可以从用户模型上的after_create
回调调用该代码,确保所有用户都成为Admins:-)
另一种方法是在控制台中或通过数据库种子为特定用户设置管理标志。
我的一个项目的种子文件示例:
admin_user = User.new( :email => USER_EMAIL, :password => PASSWORD_STRING, :name => USER_NAME )
admin_user.admin = true
admin_user.save!
希望这能有所帮助。
4年后,但当他问放在哪里时,OP问题的真正答案是:
current_user.update_attribute:admin,真正的
可以通过转到终端/命令提示符来解决。
键入
rails c
访问rails终端。
然后转到你的用户,由于你可能是第一个,它将是:
user=user.fund(1)
user.update_attribute(:admin,true)
假设您遵循了文档选项2中前面的所有步骤,这将使您的用户具有真正的Admin属性。
你可以通过来验证这一点
User.fund(1)它应该说";admin:true"在大块文本的末尾。