首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rolify Gem严格模式/作用域

Rolify Gem严格模式/作用域
EN

Stack Overflow用户
提问于 2015-09-14 16:18:15
回答 1查看 522关注 0票数 1

我有一个简单的Rails 4应用程序,只有两个空模型,用户和作业。在严格的模式下,我使用Rolify宝石来赋予用户角色。

即(文档的严格模式)

代码语言:javascript
复制
class User < ActiveRecord::Base
    rolify strict: true
end

本质上,我希望具有角色工程师的用户能够对作业类拥有特定的权限,但不一定对特定的职务具有权限。

因此,我为user1提供了一个用于作业类和作业类实例的engineer角色。而user2只获得职务类的工程师角色。就像文件一样。

代码语言:javascript
复制
job = Job.create() # Job class instance

user1.add_role(:engineer, Job) # Job class
user1.add_role(:engineer, job) # Job class instance

user2.add_role(:engineer, Job) # Job class

效果很好,我可以说;

代码语言:javascript
复制
user1.has_role? :engineer, Job #=> true
user1.has_role? :engineer, job #=> true

user2.has_role? :engineer, Job #=> true
user2.has_role? :engineer, job #=> false This is the result I expect.

但是当我尝试做一个类级rolify调用时

(即每个文档的类级别)

代码语言:javascript
复制
User.with_role(:engineer, job)
# => [ list of User instances that have a scoped role of "engineer" to a job instance ]

它返回、user1和user2。当我只期望user1的时候,因为它是专门与那个实例相关联的。严格的模式不是那样起作用的还是我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-14 03:35:51

我认为这是一个bug,所以我在这里提交了一个问题:https://github.com/RolifyCommunity/rolify/issues/362

要继续您的生活,您可以对返回的每个用户进行has_role?二次检查。

User.with_role(:engineer, job).select{|user| user.has_role?(:engineer, job)}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32569395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档