2012-08-05 10 views
5

Śledzę railscast dla Kaminari (http://railscasts.com/episodes/254-pagination-with-kaminari). Ale utknąłem w części kontrolera.Szyny Kaminari - Jak zamawiać/układać tablice?

W moim kontroler mam coś takiego:

def index 
    @articles = (params[:mine] == "true") ? current_user.articles : Article.search(params[:search]) 

    respond_to do |format| 
    format.html 
    format.json { render json: @articles } 
    end 
end 

I teraz nie jestem pewien, jak łańcuch metod, porządek, a za stronę, jak w screencast .order("name").page(params[:page]).per(5). W Array wciąż otrzymuję "zamówienie" bez metody. Wiem, że nie mogę nazwać metod na tablicach, ale jak inaczej je połączyć?

Odpowiedz

17

Można użyć Kaminari na tablicach:

Kaminari.paginate_array(@articles).page(params[:page]).per(5) 

Z documentation:

Kaminari dostarcza klasy otoki tablicy, która dostosowuje ogólny obiekt Array do paginate widzenia pomocnika. Jednak pomocnik paginate nie obsługuje automatycznie obiektu Array (jest to zamierzone i zgodne z projektem). Metoda Kaminari::paginate_array konwertuje obiekt Array na tablicę podlegającą numeracji, która akceptuje metodę page.

+0

pracował jak urok! – maru