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