Ya he implementado una búsqueda basada en la ubicación mediante geocodificador y tengo problemas para integrar la gem meta_search. Estoy tratando de integrar meta_search en mi index
object_controller
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.
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 cuál es la mejor manera de integrar @search en el índice requerido por la gem meta_search?
Esto es lo que el meta_search github recomienda 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,
Será
Creo que tanto el geocoder
como los métodos de consulta meta_search
devuelven un ActiveRecord::Relation
por lo tanto, debería poder encadenarlos:
@objects = Object.near(params[:search], 50, :order => :distance).search(params[:search]).relation.paginate(:page => params[:page], :per_page => 9)
o si necesita que el objeto de búsqueda sea separado:
@search = Object.near(params[:search], 50, :order => :distance).search(params[:search]) @objects = @search.relation.paginate(:page => params[:page], :per_page => 9)