2011-10-28 8 views
7

Recientemente decidí cambiar mi motor de indexación de sphinx a solr. Después de haber usado kaminari con thinking_sphinx, decidí intentar usar la paginación genérica en la mancha solar https://github.com/sunspot/sunspot/pull/64/https://github.com/sunspot/sunspot/pull/67, para evitar el movimiento a will_paginate.Paginación de manchas solares con kaminari

Mi búsqueda se maneja de la siguiente manera:

@search = Address.search do 
    fulltext params[:search] 
    with(:updated_at).greater_than(1.week.ago) 
    order_by :updated_at, :desc 
    paginate :page => params[:page], :per_page => 7 
end 

Mi opinión ha cambiado desde que yo tenía cuando estaba usando thinking_sphinx:

<%= render :partial => 'address' %> 
<%= paginate @addresses %> 

Mi problema es que después del cambio que continuamente aparece el siguiente error al intentar realizar una búsqueda:

undefined method `current_page' for []:Array 

estoy usando la versión más reciente de las manchas solares, que a mi conocimiento debe permitir que use kaminari:

Using sunspot (1.3.0.rc3) from git://github.com/sunspot/sunspot.git (at master) 
Using sunspot_rails (1.3.0.rc3) from git://github.com/sunspot/sunspot.git (at master) 

Esto funcionó perfectamente con mi configuración thinking_sphinx de edad, así que lo que estoy haciendo mal?

+0

Bueno me cansé de tratar de hacer que funcione y se cambió a will_paginate, funciona muy bien ahora. – maecro

+2

hay una gema de kaminari de manchas solares que hace que kaminari y la mancha solar jueguen bien juntas [https://github.com/richardiux/sunspot_with_kaminari](https://github.com/richardiux/sunspot_with_kaminari) funciona absolutamente bien para nosotros. –

+0

Había visto esa joya, pero se pasó por alto en el momento, ya que no parecía haber mucha actividad allí. Tal vez lo juzgué con dureza, volveré a analizarlo. Saludos por la recomendación. – maecro

Respuesta

13

Esta es la forma en que he utilizado y funciona muy bien

@search = Sunspot.search(Listing) do 
     if params[:category].present? 
     with :category_id, params[:category] 
     end 
     if params[:subcategory].present? 
     with :subcategory_id, params[:subcategory] 
     end 
     if params[:q].present? 
     keywords params[:q] do 
      fields :title, :description 
     end 
     end 
     paginate :page => params[:page], :per_page => SEARCH_RESULT_PER_PAGE 
    end 

Y en vistas tengo este

<%= paginate @search.hits %> 
+0

¡me has ahorrado mucho tiempo! ¡Gracias! – 23tux

Cuestiones relacionadas