【发布时间】:2013-04-19 03:32:23
【问题描述】:
您好,我正在使用 rolify,但我刚刚意识到我实际上并没有充分利用它的全部潜力。
目前我正在我的控制器中做一些事情,比如如果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。谢谢
【问题讨论】:
-
我喜欢 reddit 作为问题的来源,但我喜欢 stackoverflow 是答案的权威来源。所以我复制了一个问题,每个人都可能会发现它更容易,更快;和posted my answer on reddit。如果他在 reddit 上认为我的回答不受欢迎,我将在此处链接到任何更好的回答,然后关闭它。否则,我也希望他的问题也能在这里得到解答,然后我会将其传递给 reddit。
标签: ruby-on-rails ruby rolify