我已经将rails_admin安装到我的rails 3应用程序,我根据我添加到用户模型的“admin”字段设置了该应用程序以验证管理员。有没有一种简单的方法可以让我的Heroku上的现有用户安装管理员?我无法在数据库上执行SQL,因为我目前在共享数据库上。是否可以创建将用户设置为管理员的迁移?看起来有点像黑客......
答案 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)
有两种方法可以在制作中创建管理员:
在seed.rb
文件中添加管理员用户并在生产时运行它。在heroku上运行种子文件的命令:
heroku run rake db:seed
打开heroku run rails console
,在heroku云上打开控制台,您可以手动创建用户/管理员。