2012-08-05 6 views
5

Ich folge dem Railscast für Kaminari (http://railscasts.com/episodes/254-pagination-with-kaminari). Aber ich bin mit dem Controller Teil fest.Rails Kaminari - Wie bestellen/paginieren Arrays?

In meinem Controller, habe ich so etwas wie diese:

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 

Und jetzt bin ich nicht sicher, wie Kette, um die Methoden, Ordnung, Seite und pro, wie in den Screencasts .order("name").page(params[:page]).per(5). Ich bekomme immer noch die Methode 'Order' in Array. Ich weiß, dass ich die Methoden für Arrays nicht aufrufen kann, aber wie kann ich sie sonst noch verketten?

Antwort

17

Sie können Kaminari auf Arrays verwenden:

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

Vom documentation:

Kaminari bietet eine Array-Wrapper-Klasse, die ein generisches Array-Objekt in die paginate View Helfer anpasst. Der Helper paginate behandelt jedoch Ihr Array-Objekt nicht automatisch (dies ist absichtlich und von Entwurf). Kaminari::paginate_array Methode konvertiert Ihr Array-Objekt in ein paginierbares Array, das die Methode page akzeptiert.

+0

arbeitete wie ein Charme! – maru

Verwandte Themen