3

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

4

4 回答 4

4

使用heroku console(或者heroku run rails console如果你在他们的新 Cedar 堆栈上)。它就像rails console在本地一样,应该允许您轻松进行此更改。

于 2011-06-27T19:29:21.020 回答
1

逐步分解:

heroku run rails c

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

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

user.save

ctrl + c退出控制台

于 2014-09-10T02:15:41.893 回答
0

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

normal_user.rb

class NormalUser < User
end

admin_user.rb

class AdminUser < User
end

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

User.is_a?(AdminUser)
于 2011-06-27T19:33:26.843 回答
0

有两种方法可以在生产环境中创建管理员:

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

    heroku 运行 rake db:seed

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

于 2017-06-23T08:50:46.687 回答