在我的模型中,我有相当数量的模型项的子类。我希望能够指定对于给定的角色,他们对Item的权限将应用于Item的所有子类,而无需显式列出它们;如果我添加新的Item子类,我不希望必须记住更新权限。我如何才能做到这一点?
例如,此权限
if user.role? :customer_service
can :read, Item
end不允许客户服务代表读取机柜的详细信息,其中机柜<项目。
发布于 2011-01-28 10:47:28
我认为您可以通过向can声明发送一个块来做到这一点。也许是这样的:
if user.role? :cutomer_service
can do |action, subject_class, subject|
# Checks if action is :read and if subject_class is a subclass of Item
action == :read && subject_class < Item
end
end我还没有测试过,但我认为它应该可以工作。
https://stackoverflow.com/questions/4822149
复制相似问题