2011-07-20 14 views
6

私は既にジオコーダを使用して位置情報ベースの検索を実装しており、meta_search宝石の統合に問題があります。私はobject_controllerindexにmeta_searchを統合しようとしています。ユーザーがすでに検索した後で、検索結果をオブジェクト:attributesでフィルタリングしてソートすることができます。既存のジオコーダ宝石検索(レール)とインデックスにmeta_search宝石を統合

マイ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 

meta_search宝石で必要とされるインデックスに@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)