2011-07-01 7 views
29

Dla Stronicowanie wspólną tablicę mam to rozwiązanieszyny 3, Kaminari stronicowanie na prostej tablicy

@arr_name = Kaminari.paginate_array (@arr_name) .strona (params [: strona)]. Za (PER_PAGE_RECORDS)

PER_PAGE_RECORDS to zmienna o wartości zgodnej z potrzebą paginacji.

Jakieś lepsze pomysły?

także mieć ajax apel o użyciu jednego paginacji mogą korzystać z tego,

Państwa zdaniem

podać identyfikator na swojej karcie div

div id="paginate" 

i wewnątrz niego

<% = paginate @arr_name,: zdalny => true%>

.

A js pliku odpowiedzi wprost,

$ ('# paginate') html (”<% = escape_javascript (paginate (@arr_name,: zdalne => true) .to_s)% > ');

Twoje prośby to AJAX.

Dzięki.

+0

Proszę sformatować swój kod za pomocą wcięcia 4-spacji lub odcisków. Dziękuję Ci. –

+4

jaki jest dokładnie twój problem? – Fivell

+0

@Fivell Nie jest pewien, czy to jest właściwe podejście? – Roger

Odpowiedz

58

Jest to jedyna dostępna metoda pomocnicza do tworzenia stronicowania obiektu tablicowego przy użyciu Kaminari. Inną alternatywą jest, zgodnie z sugerowanym rozwiązaniem w kaminari wiki page, dodanie metod instancji do obiektu tablicy.

Jeśli próbujesz wspólnego rozwiązania opartego na typ zwracany przez ActiveModel (.all zwraca tablicę i .where zwraca ARL), a następnie obejście to obejście.

unless @arr_name.kind_of?(Array) 
    @arr_name = @arr_name.page(params[:page]).per(PER_PAGE_RECORDS) 
else 
    @arr_name = Kaminari.paginate_array(@arr_name).page(params[:page]).per(PER_PAGE_RECORDS) 
end 
+0

świetne rozwiązanie :) +1 :) –

+7

Przyjemne rozwiązanie. Tylko mała sugestia @Sethupathi. Najlepszą praktyką jest użycie "if" zamiast "chyba, że ​​czegoś innego" :) Pozdrawiam! – Ron

+0

Świetne rozwiązanie. Wielkie dzięki! – fmquaglia