0

我试图从我的轮胎搜索结果中排除 current_user.id,但不知道如何将参数传递给轮胎并使用它而不是固定值进行搜索。 如何将 current_user.id 传递给模型并将其排除在搜索结果中?

主动记录方式:

Profile.where("user_id != ?", current_user.id)

我的轮胎搜索块:

if params['people']
  tire.search(load: true, page: params[:page], per_page: 20, :default_operator => 'AND') do
    query do
      boolean do
        must_not { string 'user_id: 1' } <== this works hardcoded
        must_not { string 'user_id: < instead of 1 user current_user.id pass in true params?' }          
      end
    end
    to_curl
  end
end
4

1 回答 1

1

您是否尝试过使用 README 在https://github.com/karmi/tire上提到的“命令式风格” ?这是自述文件的直接引用:

search = Tire::Search::Search.new('articles')
search.query  { string('title:T*') }
search.filter :terms, :tags => ['ruby']
search.sort   { by :title, 'desc' }
search.facet('global-tags') { terms :tags, :global => true }
# ...
p search.results

也许“声明式”样式会在彼此内部折叠成很多块,然后上下文(current_user)就丢失了。您究竟是如何在布尔条件中插入 current_user_id 的?

于 2013-02-05T14:47:27.500 回答