Це не круто повторювати функціонал `:with_matched_field` в своєму методі. Також це має бути `scope` який просто фільтрує користувачів по ролі:
```
scope :with_roles, ->(roles) { where('roles & ? > 0', User.roles_to_int(roles))}
```
І потім використовувати як:
```
User.with_matched_field(params[:search_by], params[:q]).with_roles(roles)
```