ruby-on-rails - 如何让第一个用户成为 Devise gem 的管理员?

标签 ruby-on-rails devise

我想让第一个用户成为管理员。

所以我有字符串属性 admin,我需要在过滤器或覆盖 Devise 注册 Controller 之前做一些。像这样的东西:

if User.first?
  User.admin = "admin"
  User.save
end

这里是设计注册 Action

 def new
  resource = build_resource({})
  respond_with resource
end

执行此操作的更好方法是什么?

最佳答案

假设您的代码不经常运行(仅在第一次在生产环境中运行您的应用程序时),我会简单地编写一个 Rake 任务为您执行一次,而不是让您的应用程序代码困惑。

把这个放在你的 Rakefile

task :promote_admin => :environment do
  User.first.update_attribute('admin', 'admin')
end

通过这种方式,您可以保持代码整洁,同时仍然可以非常简单地在安装过程中提升第一个用户。

如果您想提升第一个用户,您只需从控制台运行 rake promote_admin,第一个用户将被提升为管理员。

关于ruby-on-rails - 如何让第一个用户成为 Devise gem 的管理员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11557609/

相关文章:

ruby-on-rails - 在一行中使用带有 rspec 的 lambda do.end block 检查模型计数是否更改

ruby-on-rails - 了解如何使用 Pundit

ruby-on-rails-3 - Rails 中的设计和无状态 token

ruby-on-rails - 为什么 Module.sum( :field) is integer?

ruby-on-rails - Rails远程表单通过javascript提交

javascript - 如何在rails的js中更改 View 变量

ruby-on-rails-3 - cancan Skip_authorization_check 用于设计身份验证

ruby-on-rails - 插入逗号来分隔大数?

mysql - 创建轮值表的用户

ruby-on-rails - 如果文章是自己的,如何允许用户只看到编辑和删除链接?