Searchkick 与 Rolify
Searchkick with Rolify
我有一个 Rails 4 应用程序,我正在尝试使用 Searchkick gem. But, I only want the search results to include Tasks that the current user has a certain 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 的所有任务,而不仅仅是匹配 foo 的当前用户的任务。我知道有一个 UsersRoles table,Rolify 使用它来关联用户和角色,但我不知道如何将它与任务模型的角色关联起来。
是否可以在 Searchkick 查询中搜索属于当前用户的特定角色的任务模型角色?
尝试使用 Searchkick/elaticsearch-rails 的 records
功能来执行此操作。
Task.search("foo").records.with_role(:viewer, current_user)
records
将结果基本上转换为 where(id: [ids, matching, the, elasticsearch, query])
范围,您可以在其中添加其他查询。
我有一个 Rails 4 应用程序,我正在尝试使用 Searchkick gem. But, I only want the search results to include Tasks that the current user has a certain 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 的所有任务,而不仅仅是匹配 foo 的当前用户的任务。我知道有一个 UsersRoles table,Rolify 使用它来关联用户和角色,但我不知道如何将它与任务模型的角色关联起来。
是否可以在 Searchkick 查询中搜索属于当前用户的特定角色的任务模型角色?
尝试使用 Searchkick/elaticsearch-rails 的 records
功能来执行此操作。
Task.search("foo").records.with_role(:viewer, current_user)
records
将结果基本上转换为 where(id: [ids, matching, the, elasticsearch, query])
范围,您可以在其中添加其他查询。