太阳黑子搜索用户

时间:2013-10-14 08:54:02

标签: ruby-on-rails ruby sunspot

我在申请时使用太阳黑子。在我的应用程序中,人们可以在他的帐户中上传声音,我使用太阳黑子来研究声音的名称。但我的搜索发现所有声音,而不仅仅是用户的声音。

在我的控制器中我写道:

if params[:search].present?
    @search = Sunspot.search(Sound) do
      fulltext params[:search]


    end

    @sounds = @search.results
  else
    @sounds = Sound.order(:title).all
  end

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @sounds }
  end

但是我列出的所有声音不仅仅是用户的声音。

我希望我的要求很清楚。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在太阳黑子中我们有:在那里我们可以传递你自己的过滤器,如

Sounds.search do
  fulltext 'your text'
  with :user_id, 1
end

if params[:search].present?
  @search = Sunspot.search(Sound) do
  fulltext params[:search]
end
  @sounds = @search.results
else
  @sounds = Sound.order(:title).all
end
respond_to do |format|
  format.html # index.html.erb
format.json { render json: @sounds }
end

无论如何@sounds具有所有值,因此你可以编写一个范围by_user,你可以轻松地过滤它。

喜欢@sounds.by_user(@user.id)

更多信息请参阅RailcastGithubsunspot.github.io