【问题标题】:How do I create an admin in Ruby On Rails using the Devise Gem?如何使用 Devise Gem 在 Ruby On Rails 中创建管理员?
【发布时间】:2012-10-08 18:46:08
【问题描述】:

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

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

current_user.update_attribute :admin, true

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

【问题讨论】:

  • 这可能会进入控制器的操作。

标签: ruby-on-rails-3.1 devise rubygems


【解决方案1】:

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

通过使用 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!

希望这会有所帮助。

【讨论】:

    【解决方案2】:

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

    current_user.update_attribute :admin, true

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

    输入

    轨道c

    访问铁路终端。

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

    user = User.find(1)

    user.update_attribute(:admin, true)

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

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

    用户.find(1) 它应该在大文本块的末尾显示“admin:true”。

    【讨论】:

      猜你喜欢
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多