Интеграция драгоценного камня meta_search в индекс с существующим поиском драгоценного камня геокодера (rails) - PullRequest
6 голосов
/ 20 июля 2011

Я уже реализовал поиск на основе определения местоположения с помощью геокодера, и у меня возникли проблемы с интеграцией гема meta_search. Я пытаюсь интегрировать meta_search в мой object_controller index, чтобы пользователи могли фильтровать и сортировать результаты поиска по объектам :attributes после того, как они уже искали по местоположению.

Мой объектный контроллер:

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 Ответ

1 голос
/ 27 марта 2012

Я полагаю, что оба метода запроса geocoder и meta_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)
...