我试图将用户设置为管理员,这是我到目前为止编写的代码:
应用/控制器/ 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
分贝/ seeds.rb
User.create!(name: "admin",
surname: "admin",
email: "admin@1.it",
password: "password",
password_confirmation: "password",
admin: true)
因此,当我使用这些规范创建用户时,它也无法正常工作:输入&#39; localhost:3000 / users,它会将我重定向到root_url而不是用户页面。 有人能帮我吗?这段代码有什么问题? 谢谢你的帮助!
答案 0 :(得分:1)
好的,这就是我设置管理员的方式:
class AddAdminToUsers < ActiveRecord::Migration def change add_column :users, :admin, :boolean, default: false end end
def require_admin if !current_user.admin? redirect_to benefits_path end end
在该控制器的顶部写下before_action的东西
使用rails控制台将其中一个用户从admin false切换为admin true
测试您的管理员权限
答案 1 :(得分:0)
请浏览Rolify gem。
使用此gem,您可以为不同的用户定义不同的角色,并且为角色验证用户也非常容易。
答案 2 :(得分:0)
如果使用rails3,请使用before_filter。
before_filter :admin_user, only: [:index]