ruby-on-rails - 如何将用户设置为管理员 [rails]

标签 ruby-on-rails ruby ruby-on-rails-3

我正在尝试将用户设置为管理员,这是我目前编写的代码:

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 而不是用户页面。 有人能帮我吗?这段代码有什么问题? 感谢您的帮助!

最佳答案

好的,这是我设置管理员的方式:

  1. 执行迁移以向用户添加管理 bool 列。它应该看起来像这样
class AddAdminToUsers < ActiveRecord::Migration
  def change
    add_column :users, :admin, :boolean, default: false
  end
end
  1. 在你想要管理限制的元素的 Controller 中写一个看起来像这样的方法
def require_admin
     if !current_user.admin?
           redirect_to benefits_path
     end
end
  1. 在那个 Controller 的顶部写 before_action 的东西

  2. 使用 Rails 控制台将其中一个用户从 admin false 切换到 admin true

  3. 测试您的管理员权限

关于ruby-on-rails - 如何将用户设置为管理员 [rails],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31892058/

相关文章:

mysql - Mac Os rake 数据库 :create through error with qt and mysql dependence

ruby-on-rails-3 - Ruby on Rails : Change email user per username in header menu ActiveAdmin

ruby-on-rails - asset_host Rails 3 在哪里?

ruby-on-rails - 由 find_or_create_by_ 创建的重复记录

ruby-on-rails - Rails - 多态自联接模型关联

ruby-on-rails - CGI::unescape 给出错误未定义方法 `tr'

ruby-on-rails - Rails 4 - has_one - 无法访问相关模型的属性

ruby-on-rails - 将路由文件拆分为多个文件

mysql - 无法从 Windows 中的 Rails 应用程序连接到 MySql

ruby-on-rails - 未初始化的常量 Capybara