我试图从我的轮胎搜索结果中排除current_user.id,但无法想象如何将一个参数传递给Tire并使用它而不是固定值进行搜索。 如何将current_user.id传递给模型并将其排除在搜索结果中?
Activerecord方式:
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
答案 0 :(得分: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的?