ruby-on-rails-3.1 - 如何使用 Devise Gem 在 Ruby On Rails 中创建管理员?

标签 ruby-on-rails-3.1 devise rubygems

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

文档上写着: “下面的代码可用于向当前用户授予管理员状态。”

current_user.update_attribute :admin, true

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

最佳答案

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

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

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

一种方法是在 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!

希望这有帮助。

关于ruby-on-rails-3.1 - 如何使用 Devise Gem 在 Ruby On Rails 中创建管理员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12787615/

相关文章:

logging - 防止 Rails 3.1(webrick?)记录资源渲染

ruby-on-rails - ActionMailer在文本邮件程序中未显示空格

ruby-on-rails - 在 rails Controller 中访问设备 current_user 变量

ruby-on-rails - Rails current_user 最佳实践

ruby-on-rails-3 - 与乘客一起部署 RoR 应用程序时无法 bundle

Ruby JSON gem 安装错误 : Ruby 2. 4.1,JSON 1.8.6 (Windows 10)

ruby-on-rails - rails : Use livereload with Asset Pipeline

javascript - 在 Assets 管道的 javascript 中嵌入 erb 代码

ruby-on-rails - Rails 5 API 和 devise flash 未定义方法错误

ruby-on-rails - 禁用设备的 :confirmable on-the-fly to batch-generate users