我想让第一个用户成为管理员。
所以我有字符串属性 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/