扶手:添加使用设计谁可以看到所有用户的管理角色(Rails : Adding an admin ro

2019-06-25 08:08发布

我需要创建使用设计我的应用程序管理员的角色。 我已经用色器件创建的基本身份验证。 我在我的应用程序有一项用户模式,但现在我需要一个管理员谁可以显示编辑和删除所有用户。 我想下面的教程,但他们没有帮助。 我使用的轨道3.0.10和Ruby 1.9.2-P290。

Answer 1:

您只需通过创建migratioin首先定义role.rb

      rails g model role  name:string

然后在role.rb

      class Role
         has_one:user
      end

而在用户模型

      class user
         belongs_to :role
      end

插入两个角色到数据库

   1.admin
   2.user

然后,通过此检查

    if user.role.name == "admin"  
        # can do all your logic
    else
         your logic
    end

确保插入ROLE_ID:整数到用户模型

试试吧.......



Answer 2:

我也有类似的要求,因为你的,也不希望任何用户能够登记。 所有这一切都会由Admin被照顾。 她我做了什么。

我添加了名为管理员另一色器件模型

rails generate devise MODEL

禁用“可注册”用户模式,使用户无法通过自理singup

user.rb

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :registerable,    :timeoutable and :omniauthable
  devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name,  :last_name, :role, :admin
  # attr_accessible :title, :body
end

通过使用样本从这里启用用户CRUD: https://gist.github.com/1056194

最后保护保护用户控制像这样

users_controller.rb

# Add this
before_filter :authenticate_admin!

希望这可以帮助。



文章来源: Rails : Adding an admin role using devise who can see all the users