如何仅使用太阳黑子搜索已批准的文章

时间:2015-01-18 20:54:21

标签: ruby-on-rails ruby search ruby-on-rails-4 sunspot

我有一个具有默认状态的文章模型"等待"在我的文章模型中我有:

  scope :awaiting, -> {where(status: "Awaiting") }
  scope :approved, -> {where(status: "Approved") }
  scope :rejected, -> {where(status: "Rejected")}

并且只允许在我的文章模型中搜索已批准的文章:

searchable do
  text :title
  string :status
end

这是我的搜索控制器

  def search

    @search = Sunspot.search(Article) do
        fulltext params[:query]
        with(:status, "Approved")
        order_by :score, :desc
        paginate(page: params[:page], per_page: 10)

    end

    @articles = @search.results

    respond_to do |format|
      format.html { render :action => "search" }
    end
  end

但是,当我试图搜索任何内容时,这将不会产生任何结果,为什么会这样?

1 个答案:

答案 0 :(得分:0)

如果您的模型在添加太阳黑子之前已经存在,则需要使用bundle exec rake sunspot:solr:reindex创建索引。

未来的更新应自动添加到索引中。