轮胎传递参数模型并在搜索中使用此参数

时间:2013-02-01 10:09:26

标签: ruby-on-rails-3 tire param

我试图从我的轮胎搜索结果中排除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

1 个答案:

答案 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的?