2011-10-28 11 views
7

Niedawno zdecydowałem się przenieść mój silnik indeksujący z sfinksa na solr. Po użyciu kaminari z thinking_sphinx postanowiłem spróbować użyć generycznego paginacji w plamach słonecznych https://github.com/sunspot/sunspot/pull/64/https://github.com/sunspot/sunspot/pull/67, aby użyć unikać poruszania się do will_paginate.Pagina plam słonecznych z kaminari

Moja przeszukiwanie jest wykonywane w następujący sposób:

@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 

Mój pogląd jest niezmieniony od tego, co miałem kiedy używałem thinking_sphinx:

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

Mój problem jest to, że po zmianie ja ciągle podczas próby wykonania wyszukiwania wystąpił następujący błąd:

undefined method `current_page' for []:Array 

Używam najnowszej wersji plamy słonecznej, co do mojej wiedzy powinien pozwolić mi korzystać 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) 

To działało idealnie z moim starym konfiguracji thinking_sphinx, więc to, co robię źle?

+0

Cóż mam dość stara, aby pracować i włączony do will_paginate, działa świetnie teraz. – maecro

+2

jest klejnot kaminari plam słonecznych, który sprawia, że ​​kaminari i plamy słoneczne ładnie się razem [https://github.com/richardiux/sunspot_with_kaminari] (https://github.com/richardiux/sunspot_with_kaminari) działa absolutnie dobrze dla nas. –

+0

Widziałem ten klejnot, ale wtedy go przeoczono, ponieważ nie było tam zbyt wiele aktywności. Być może oceniłem to nieco ostro, jeszcze raz przyjrzę się temu. Pozdrawiam za rekomendację. – maecro

Odpowiedz

13

ten sposób użyłem i działa świetnie

@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 

I w widokach mam to

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

oszczędziłeś mi dużo czasu! dzięki! – 23tux

Powiązane problemy