我正在开发一个 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/