使现有用户成为Heroku的管理员

时间:2011-06-27 19:18:54

标签: ruby-on-rails heroku rails-admin

我已经将rails_admin安装到我的rails 3应用程序,我根据我添加到用户模型的“admin”字段设置了该应用程序以验证管理员。有没有一种简单的方法可以让我的Heroku上的现有用户安装管理员?我无法在数据库上执行SQL,因为我目前在共享数据库上。是否可以创建将用户设置为管理员的迁移?看起来有点像黑客......

4 个答案:

答案 0 :(得分:4)

如果您使用的是新的Cedar堆栈,请使用heroku console(或heroku run rails console。它就像rails console本地一样,应该可以让你轻松地做出这种改变。

答案 1 :(得分:1)

逐步分解:

heroku run rails c

User.find(55)或与您想要的用户匹配的任何其他ID。如果它是唯一的用户,User.first就足够了。

user = User.admin = true假设您有一个类型为boolean的管理列。

user.save

ctrl + c退出控制台

答案 2 :(得分:0)

如果您要创建特定类型的用户,我将使用Rails STI来管理不同的用户类型。您的user.rb仍然拥有关于用户创建和一些权限的所有验证,但您将拥有

normal_user.rb

class NormalUser < User
end

admin_user.rb

class AdminUser < User
end

您的迁移是将'type'添加到users表。然后,您想要创建管理员的任何现有用户都可以找到并将其类型设置为“AdminUser”。您需要的任何管理员特定操作,您只需使用

User.is_a?(AdminUser)

答案 3 :(得分:0)

有两种方法可以在制作中创建管理员:

  1. seed.rb文件中添加管理员用户并在生产时运行它。在heroku上运行种子文件的命令:

    heroku run rake db:seed

  2. 打开heroku run rails console,在heroku云上打开控制台,您可以手动创建用户/管理员。