2011-07-20 23 views
6

Ya he implementado una búsqueda basada en la ubicación utilizando el geocodificador y tengo problemas para integrar la gema meta_search. Estoy tratando de integrar meta_search en mi object_controllerindex para permitir a los usuarios filtrar y ordenar los resultados de búsqueda por objetos :attributes después de que ya hayan buscado por ubicación.Integración de la gema meta_search en el índice con la búsqueda gemader gema existente (rieles)

Mi 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 

alguna idea de cómo integrar mejor la @search en el índice requerido por la gema meta_search?

Esto es lo que recomienda el github meta_search para el índice:

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 

Muchas gracias,

Will

Respuesta

1

Creo que tanto los métodos de consulta geocoder y meta_search devolver un ActiveRecord::Relation lo tanto, debe poder encadenarlos:

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

o si necesita el objeto de la búsqueda de estar separados:

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