2

我正在开发一个 Rails 应用程序,并且正在使用一个名为 devise 的 gem 来管理我的用户。我创建了一个名为“Admin”的新用户,但不确定如何将应用程序上的用户从“User”更改为“Admin”。

在文档上它说:“下面的代码可用于向当前用户授予管理员身份。”

current_user.update_attribute :admin, true

但是这个片段会去哪里呢?这是文档,管理员角色创建信息位于页面底部附近。 https://github.com/plataformatec/devise/wiki/How-To%3A-Add-an-Admin-Role

4

2 回答 2

2

您非常接近解决方案!没有什么比阅读文档更有趣了:-)

通过使用 wikipage 上提到的选项 2,您的应用程序中的用户将根据 admin 属性被分类为“常规”或“管理员”。wikipage 为您提供了向当前用户授予管理员角色的代码,并让您决定在哪里调用此代码。

很公平,因为用户如何成为管理员是特定于每个应用程序的,这取决于用户希望如何完成。

一种方法是在 GUI 中执行“授予当前用户管理权限”操作,该操作将调用代码。在这种情况下,代码将位于“users_controller.rb”文件中的“grant_current_user_admin_rights”方法中。当然,视图和路由也应该相应地修改。

after_create您可以从用户模型的回调中调用该代码,确保所有用户都成为管理员:-)

另一种方法是在控制台或通过数据库种子为特定用户设置管理标志。

我的一个项目的种子文件示例:

admin_user = User.new( :email => USER_EMAIL, :password => PASSWORD_STRING, :name => USER_NAME )
admin_user.admin = true
admin_user.save!

希望这可以帮助。

于 2012-10-09T13:46:31.580 回答
2

晚了 4 年,但当他问到哪里放时,这是对 OPs 问题的真正答案:

current_user.update_attribute :管理员,真

可以通过转到终端/命令提示符来解决。

输入

导轨 c

访问铁路终端。

然后去找你的用户,因为你可能是第一个它会是:

用户 = User.find(1)

user.update_attribute(:admin, true)

假设您遵循了文档选项 2 中的所有先前步骤,这会将您的用户设置为具有真正的 Admin 属性。

您可以通过以下方式验证这一点

User.find(1) 并且它应该在大文本块的末尾说“admin:true”。

于 2016-05-07T17:47:51.577 回答