2011-07-20 46 views
6

我已经使用地理编码器实现了基于位置的搜索,并且无法集成meta_search gem。我试图将meta_search整合到我的object_controllerindex中,以允许用户在按位置搜索完毕后,按对象:attributes对搜索结果进行过滤和排序。将索引中的meta_search gem与现有geocoder gem search(rails)集成

我object_controller:

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创业板所要求的指标集成?

这里是什么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 

非常感谢,

威尔

回答

1

相信无论对geocodermeta_search查询方法返回一个ActiveRecord::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)