Rails在搜索查询中处理多个Params

时间:2013-11-28 16:25:29

标签: ruby-on-rails ruby-on-rails-3 postgresql activerecord ruby-on-rails-3.2

我有以下模型,我想在“with_query”中传递多个参数,不知道如何实现它。目前你可以看到它只需要“查询”参数。如何使用country和job_type过滤它。任何帮助都会非常感激。

搜索模型

def self.search(query, country, job_type, page = 1)

      results = []

      Refinery.searchable_models.each do |model|
        results << model.limit(RESULTS_LIMIT).with_query(query)
      end if query.present?

      results.flatten[0..(RESULTS_LIMIT - 1)]

    end

控制器

  def show
    @results = Refinery::SearchEngine.search(params[:query], params[:country], params[:job_type], params[:page])
    present(@page = Refinery::Page.find_by_link_url("/search"))
  end

1 个答案:

答案 0 :(得分:1)

我会尝试将在搜索模型中构建结果的行更改为:

results << model.limit(RESULTS_LIMIT).with_query(query).where(country: country, job_type: job_type)