6

我已经使用地理编码器实现了基于位置的搜索,并且在集成 meta_search gem 时遇到了麻烦。我正在尝试将 meta_search 集成到 myobject_controller index中,以允许用户在:attributes按位置搜索后按对象过滤和排序搜索结果。

我的对象控制器:

def index 
  if params[:search].present?
   @objects = Object.near(params[:search], 50, :order => :distance).paginate(:page => params[:page], :per_page => 9)
  else
   @objects = Object.paginate(:page => params[:page], :per_page => 9)
  end
end

知道如何最好地将@search 集成到 meta_search gem 所需的索引中吗?

这是 meta_search github 推荐的索引:

def index
  @search = Article.search(params[:search])
  @articles = @search.all   # load all matching records
  # @articles = @search.relation # Retrieve the relation, to lazy-load in view
  # @articles = @search.paginate(:page => params[:page]) # Who doesn't love will_paginate?
end

非常感谢,

将要

4

1 回答 1

1

我相信 thegeocodermeta_searchquery 方法都返回 anActiveRecord::Relation因此你应该能够链接它们:

@objects = Object.near(params[:search], 50, :order => :distance).search(params[:search]).relation.paginate(:page => params[:page], :per_page => 9)

或者如果您需要将搜索对象分开:

@search = Object.near(params[:search], 50, :order => :distance).search(params[:search])
@objects = @search.relation.paginate(:page => params[:page], :per_page => 9)
于 2012-03-27T02:06:02.413 回答