2012-10-08 190 views
2

我开发一个Rails应用程序和正在使用的宝石叫色器件来管理我的用户。我创建了一个名为“Admin”的新用户,但我不确定如何将应用程序中的用户从“用户”更改为“管理员”。如何使用Devise Gem在Ruby On Rails中创建管理员?

在文档,它说: “下面的代码可用于授予管理状态为当前用户。”

current_user.update_attribute :admin, true 

但是这段代码会去哪里? 以下是文档,admin角色创建信息接近页面底部。 https://github.com/plataformatec/devise/wiki/How-To%3A-Add-an-Admin-Role

回答

2

您是非常接近的解决方案!没有什么比通过:-)

文档阅读通过与在WIKIPAGE提到选项2去,在你的应用程序的用户将根据管理属性被归类为 “常规”或“管理”。该wikipage为您提供授予管理员角色给当前用户的代码,并决定将此代码的调用权交给您。

很公平,因为用户如何成为管理员是具体到每一个应用程序,这取决于用户如何希望它来完成。

一种方式做这将是在这将调用代码的GUI一个“授予当前用户管理员权限的行动。在这种情况下,该代码将一个“grant_current_user_admin_rights”方法中去了“users_controller.rb”文件。当然,视图和路线也应该相应地修改。

你可以称之为从after_create回调代码在用户模式,确保所有用户都成为管理员 :-)

另一种方式来做到这将是设置管理员标记为特定用户无论是在控制台或通过数据库种子。从一个种子文件在我的项目之一

例子:

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

希望这有助于。

2

4年晚,但真正的答案OP的问题,当他问放在哪里:

current_user.update_attribute:管理员,真正

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

导轨键入c

访问导轨终端。

然后去你的用户,因为你很可能第一这将是:

用户=用户。发现(1)

user.update_attribute(者:admin,真)

假设您按照文件的选项2的所有前面的步骤,这将设置你的用户有一个真正的管理属性。

您可以通过

User.find(1) 验证这一点,它应该说“管理员:真正的”在文本的大块的结尾。