Rails 4.1 + Sunspot:无法找到范围Sunspot :: Search :: PaginatedCollectionPolicy :: Scope

时间:2014-06-25 02:47:12

标签: ruby-on-rails ruby solr

我正在尝试使用sunspot gem在我的Rails 4.1应用中设置搜索。我有一个名为Post的模型,它添加了searchable

class Post < ActiveRecord::Base
  searchable do
    text :description, :body
  end
end

然后我在我的控制器中执行搜索

def search
  if params[:search]
    @search = policy_scope(Post).search do
      fulltext params[:search]
    end
    @posts = @search.results
    render :index unless @posts.empty?
    flash[:error] = "No results found"
    redirect_to(request.referrer || root_path)
  end
end

我收到以下错误

unable to find scope Sunspot::Search::PaginatedCollectionPolicy::Scope ...

我可能做错了什么?

1 个答案:

答案 0 :(得分:0)

请创建app / policies / paginated_collection_policy.rb:

class Sunspot::Search::PaginatedCollectionPolicy < ApplicationPolicy
  class Scope < Scope
    def resolve
      scope
    end
  end
end

注意:模块太阳黑子和模块搜索都是在gem Sunspot中创建的。由于Ruby模块和类都是开放的(可附加的),因此无需重新创建它们。只需附加所需的Pundit策略类。