嗨,我正在使用 rolify 并且刚刚意识到我实际上并没有充分利用它的全部潜力。
目前我正在我的控制器中做一些事情,比如重新路由用户 if current_user.has_role? :whatever_role
,并允许用户如果他们有任何其他角色......
有人在 stackoverflow 上问了一个关于 rolify 的问题,当我试图回答时,我意识到我做错了。
现在,这就是我的困惑开始的地方......在 ability.rb 里面我有:
user ||= User.new # guest user (not logged in)
if user.has_role? :consumer
can :manage, Review
else
can :read, Review
end
现在假设我将消费者角色添加到用户:
x=User.last
x.add_role :consumer
# => #<Role id: 10, name: "consumer", resource_id: nil, resource_type: nil, created_at: "2013-04-18 23:00:46", updated_at: "2013-04-18 23:00:46">
对了,这样就创建了角色。我可以通过以下方式检查:
x.has_role? :consumer
=> true
现在我希望这能够为评论提供管理能力......
x.has_role? :consumer, Review
=> true
但不适用于其他型号...在这里我尝试产品
x.has_role? :consumer, Product
=> true
此外,当我查看“资源角色查询”并尝试查询应用角色以进行评论时,我发现没有应用角色:
Review.first.applied_roles
=> []
有人可以向我解释一下 rolify。谢谢