2011-07-20 78 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)