我试图从我的 Tire 搜索结果中排除 current_user.id,但无法弄清楚如何将参数传递给 Tire 并使用它而不是固定值进行搜索。如何将 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
您是否尝试过使用自述文件中提到的"命令式样式"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的?