Como posso usar escopos com o Ransack no Rails

No meu modelo de Widget, tenho o seguinte:

scope :accessible_to, lambda { |user|
  if user.has_role?('admin')
    self.all
  else
    roles = user.roles
    role_ids = []
    roles.each { |r| role_ids << r.id }
    self.joins(:widget_assignments).where('widget_assignments.role_id' => role_ids)
   end
}

Ideally, eu gostaria de usar esse escopo como um filtro para os resultados de pesquisa do Ransack, então no meu controlador eu tenho:

def index
  @q = Widget.accessible_to(current_user).search(params[:q])
  @widgets = @q.result.order('created_at DESC')
end

Fazer isso gera o seguinte erro:

undefined method `search 'para Matriz: 0x007ff9b87a0300

Acho que o Ransack está procurando um objeto de relação ActiveRecord e não uma matriz. Existe alguma maneira de usar meu escopo como um filtro para o Ransack?

questionAnswers(1)

yourAnswerToTheQuestion