Rails 4 アプリがあり、Searchkick gem を使用して Task モデルを検索しようとしています。ただし、現在のユーザーが特定の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 に一致するすべてのタスクが含まれます。Rolify がユーザーとロールを関連付けるために使用する UsersRoles テーブルがあることは知っていますが、それを Task モデルのロールに関連付ける方法がわかりません。
Searchkick クエリで、現在のユーザーに属する特定のロールについて、Task モデルのロールを検索することは可能ですか?