用 CanCan(can) 设计
Devise with CanCan(can)
我似乎找不到这方面的好教程,我有点碰壁了。
我正在使用 rails 4.2.0 和基本的 CRUD 应用程序。对于身份验证,我使用的是 devise,对于角色,我使用的是 Cancancan,因为它们具有相当易于理解的文档。
我有两种类型的用户:
用户和管理员。
管理员可以与所有模型交互。添加-编辑-删除等
用户只能与特定模型交互。这将是一个预订系统。
我不太确定设置它需要经历的过程。我是否需要为每种用户类型进行完整的 rails 生成,或者我是否可以只使用 Devise 生成?除此之外,我如何选择用户类型?到目前为止,我有两个有效的登录链接。
我遇到的主要问题是在 cancancan 中定义角色。
任何关于此主题的help/questions将不胜感激。
为简单起见,您可以在用户 table 上添加一个 admin
布尔值列。您将使用 user.admin?
检查管理员用户。
这是迁移的样子。
> rails g migration add_admin_to_users
在您的迁移文件中,我会在 运行 之前将默认值设置为 false。
class AddAdminToUsers < ActiveRecord::Migration
def up
add_column :users, :admin, :boolean, null: false, default: false
end
def down
remove_column :users, :admin
end
end
默认情况下,您的用户不是管理员。但是,您可以使用 user.update_column(:admin, true)
.
轻松地使用户成为管理员
有了这个,您应该能够遵循 CanCanCan 文档,因为我相信它们非常广泛。
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.admin?
# admin abilities
else
# non-admin abilities
end
end
end
http://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities
我似乎找不到这方面的好教程,我有点碰壁了。
我正在使用 rails 4.2.0 和基本的 CRUD 应用程序。对于身份验证,我使用的是 devise,对于角色,我使用的是 Cancancan,因为它们具有相当易于理解的文档。
我有两种类型的用户:
用户和管理员。
管理员可以与所有模型交互。添加-编辑-删除等
用户只能与特定模型交互。这将是一个预订系统。
我不太确定设置它需要经历的过程。我是否需要为每种用户类型进行完整的 rails 生成,或者我是否可以只使用 Devise 生成?除此之外,我如何选择用户类型?到目前为止,我有两个有效的登录链接。
我遇到的主要问题是在 cancancan 中定义角色。
任何关于此主题的help/questions将不胜感激。
为简单起见,您可以在用户 table 上添加一个 admin
布尔值列。您将使用 user.admin?
检查管理员用户。
这是迁移的样子。
> rails g migration add_admin_to_users
在您的迁移文件中,我会在 运行 之前将默认值设置为 false。
class AddAdminToUsers < ActiveRecord::Migration
def up
add_column :users, :admin, :boolean, null: false, default: false
end
def down
remove_column :users, :admin
end
end
默认情况下,您的用户不是管理员。但是,您可以使用 user.update_column(:admin, true)
.
有了这个,您应该能够遵循 CanCanCan 文档,因为我相信它们非常广泛。
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.admin?
# admin abilities
else
# non-admin abilities
end
end
end
http://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities