Ruby on rails 坎坎宝石简单问题 模型/能力.rb
在Railscasts中,有一些方法user.role?:admin&if user.role?(:author)。我不明白。我是否需要在模型中创建一个方法以使其工作Ruby on rails 坎坎宝石简单问题 模型/能力.rb,ruby-on-rails,ruby-on-rails-3,cancan,Ruby On Rails,Ruby On Rails 3,Cancan,在Railscasts中,有一些方法user.role?:admin&if user.role?(:author)。我不明白。我是否需要在模型中创建一个方法以使其工作 我将角色作为角色列存储在Users表中 是的,你需要自己写这个。然而,坎坎项目有一个巨大的挑战 维基的第一行写道: “CanCan与您的 在用户模型中实现角色,但是 如何建立基于角色的基本模型 授权?” 请注意,我几乎完全不同意该页面上使用角色掩码的示例,但该页面仍然很好,应该会给您一些想法 还有我个人比较喜欢的。这取决于您希望将
我将角色作为角色列存储在Users表中 是的,你需要自己写这个。然而,坎坎项目有一个巨大的挑战 维基的第一行写道: “CanCan与您的 在用户模型中实现角色,但是 如何建立基于角色的基本模型 授权?” 请注意,我几乎完全不同意该页面上使用
角色掩码的示例,但该页面仍然很好,应该会给您一些想法
还有我个人比较喜欢的。这取决于您希望将角色信息存储在何处。如果您正在寻找即插即用的gem,请查看声明性授权。
Raynb说,他开发Cancan是因为DA对这里的一些项目过于苛刻:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
if user.role? :admin
can :manage, :all
else
can :read, :all
can :create, Comment
can :update, Comment do |comment|
comment.try(:user) == user || user.role?(:moderator)
end
if user.role?(:author)
can :create, Article
can :update, Article do |article|
article.try(:user) == user
end
end
end
end
end