繁体   English   中英

Rolify的Searchkick

[英]Searchkick with Rolify

我有一个Rails 4应用程序,我正在尝试使用Searchkick gem搜索任务模型。 但是,我只希望搜索结果包含当前用户具有特定Rolify角色的任务。 基本上,用户无法搜索其他用户的任务。

Rolify gem具有一种获取当前用户具有特定角色的任务的方法。

Task.with_role(:viewer, current_user) #=> Tasks where the current user has a viewer role.

我无法弄清楚如何过滤Searchkick结果以仅搜索上面代码中返回的任务。 我想做这样的事情

Task.with_role(:viewer, current_user).search("foo") #=> Returns all Tasks that match foo

但是,它包括所有与foo匹配的Task,而不仅仅是当前用户与foo匹配的Task 我知道有一个Rolify用于关联用户和角色的UsersRoles表,但是我不知道如何将其与Task模型的角色关联。

是否可以在Searchkick查询中搜索任务模型的角色以找到属于当前用户的某个特定角色?

尝试使用Searchkick / elaticsearch-rails的records功能来执行此操作。

Task.search("foo").records.with_role(:viewer, current_user)

records实际上将结果转换为where(id: [ids, matching, the, elasticsearch, query])范围,您可以在其中添加其他查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM