2012-08-05 20 views
5

Sto seguendo il railscast per Kaminari (http://railscasts.com/episodes/254-pagination-with-kaminari). Ma sono bloccato con la parte controller.Rails Kaminari - Come ordinare/impaginare gli array?

Nel mio controller, ho qualcosa di simile:

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 

E ora io non sono sicuro di come la catena di metodi, l'ordine, la pagina e per, come nel screencast .order("name").page(params[:page]).per(5). Continuo a non ottenere il metodo 'ordine' in Array. So che non posso chiamare i metodi sugli array ma in che altro modo posso incatenarli?

risposta

17

È possibile utilizzare Kaminari l'Array:

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

Dal documentation:

Kaminari fornisce una classe wrapper Array che si adatta un oggetto Array generico per l'assistente paginate vista. Tuttavia, l'helper paginate non gestisce automaticamente l'oggetto Array (questo è intenzionale e di progettazione). Il metodo Kaminari::paginate_array converte l'oggetto Array in una matrice paginabile che accetta il metodo page.

+0

ha funzionato come un fascino! – maru

Problemi correlati