我已将 rails_admin 安装到我的 rails 3 应用程序中,该应用程序已设置为根据添加到我的用户模型中的“管理员”字段对管理员进行身份验证。有没有一种简单的方法可以让我的 Heroku 上的现有用户安装管理员?我无法在数据库上执行 SQL,因为我目前在共享数据库上。创建将用户设置为管理员的迁移是否可行?似乎有点像黑客...
4 回答
使用heroku console
(或者heroku run rails console
如果你在他们的新 Cedar 堆栈上)。它就像rails console
在本地一样,应该允许您轻松进行此更改。
逐步分解:
heroku run rails c
User.find(55)
或与您想要的用户匹配的任何其他 id。如果它是唯一的用户,User.first
就足够了。
user = User.admin = true
假设您有一个布尔类型的管理列。
user.save
ctrl + c
退出控制台
如果您要创建特定类型的用户,我会使用 Rails STI 来管理不同的用户类型。您的 user.rb 仍然具有您对用户创建的所有验证和一些权限,但您将拥有
normal_user.rb
class NormalUser < User
end
admin_user.rb
class AdminUser < User
end
您的迁移是将“类型”添加到用户表中。然后,您想成为管理员的任何现有用户都可以找到并将其类型设置为“AdminUser”。您需要的任何管理员特定操作,您都可以使用
User.is_a?(AdminUser)
有两种方法可以在生产环境中创建管理员:
在文件中添加管理员用户
seed.rb
并在生产中运行它。在heroku上运行种子文件的命令:heroku 运行 rake db:seed
在heroku云上打开
heroku run rails console
哪个打开的控制台,您可以手动创建用户/管理员。