Ruby on rails 仅允许一个用户成为Desive的管理员

Ruby on rails 仅允许一个用户成为Desive的管理员,ruby-on-rails,devise,Ruby On Rails,Devise,我正在用rails 6、Desive和cancan创建一个网页 我需要一个管理员角色,但我不想创建一个单独的模型,而是在user is table中添加了一个布尔列,但问题是 如果任何用户注册,那么这将是一个安全问题,即任何用户仅通过将此列的值更改为true来授予管理员权限 所以我想也许我会从“user_params”中删除“admin”,但接下来我必须从控制台进行更改,这还不够好 我应该如何只授予特定用户管理员权限,我的想法是,我只允许第一个用户使用管理员权限,或者只允许发送特定的电子邮件,但

我正在用rails 6、Desive和cancan创建一个网页

我需要一个管理员角色,但我不想创建一个单独的模型,而是在user is table中添加了一个布尔列,但问题是

如果任何用户注册,那么这将是一个安全问题,即任何用户仅通过将此列的值更改为true来授予管理员权限

所以我想也许我会从“user_params”中删除“admin”,但接下来我必须从控制台进行更改,这还不够好

我应该如何只授予特定用户管理员权限,我的想法是,我只允许第一个用户使用管理员权限,或者只允许发送特定的电子邮件,但这感觉很愚蠢,必须有一种更聪明的方法

我如何让应用程序只有一个管理员可以使任何其他用户成为管理员,但只有他可以这样做,如果任何普通用户注册了,无论他如何不能以任何方式操纵此列

致意

  • 从注册控制器中的
    用户参数
    中删除
    管理员
    。您不希望用户仅仅通过准备请求就成为管理员
  • 介绍第三列
    super_admin
    ,如果只需执行一次,请从控制台授予此角色
  • 创建只有超级管理员才能访问的视图和控制器,超级管理员可以为所有用户更新
    admin

  • 为什么不添加第三列-超级管理员?您只能允许此用户使其他用户成为正常的管理员,这将起作用,非常感谢。感谢您的提示,这将是一个明智的解决方案。