我正在尝试将用户设置为管理员,这是我目前编写的代码:
app/controllers/users_controller.rb
class UsersController < ApplicationController
before_action :admin_user, only: [:destroy]
..
..
def admin_user
redirect_to(root_url) unless current_user && current_user.admin?
end
end
db/seeds.rb
User.create!(name: "admin",
surname: "admin",
email: "admin@1.it",
password: "password",
password_confirmation: "password",
admin: true)
因此,当我使用这些规范创建用户时,它也不起作用:键入“localhost:3000/users,它会将我重定向到 root_url 而不是用户页面。 有人能帮我吗?这段代码有什么问题? 感谢您的帮助!
最佳答案
好的,这是我设置管理员的方式:
- 执行迁移以向用户添加管理 bool 列。它应该看起来像这样
class AddAdminToUsers < ActiveRecord::Migration def change add_column :users, :admin, :boolean, default: false end end
- 在你想要管理限制的元素的 Controller 中写一个看起来像这样的方法
def require_admin if !current_user.admin? redirect_to benefits_path end end
在那个 Controller 的顶部写 before_action 的东西
使用 Rails 控制台将其中一个用户从 admin false 切换到 admin true
测试您的管理员权限
关于ruby-on-rails - 如何将用户设置为管理员 [rails],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31892058/