2011-07-24 2 views
3

J'utilise les rails gem kaminari (https://github.com/amatsuda/kaminari) afin de paginer ma base de données de messages. Actuellement, j'ai le code @posts = Post.order('id').page(params[:page]).per(5) dans mon contrôleur, mais cela ordonne les pages du plus tôt au plus récent. Comment puis-je inverser cela et commander du plus récent au plus tôt?Pagination par le plus récent poste avec kaminari

Répondre

6

dans votre modèle que vous pouvez faire:

default_scope order("created_at DESC") 

ou

default_scope order("created_at ASC") 
+0

je voudrais raccourcir le code de contrôleur: '@posts = Post.page (params [: page]) .per (5) ' – stephenmurdoch

+1

pourrais-je faire, à la place,' @posts = Post.order ('created_at DESC'). page (params [: page]). per (5) '? – Vasseurth

+1

oui, ce serait bien :) – stephenmurdoch

1
def index 
    @all = Model.all 
    @all = Model.order(sort_column + " " + sort_direction).paginate(:per_page => 5, :page => params[:page]) 
end 

def sort_column 
    Model.column_names.include?(params[:sort]) ? params[:sort] : "updated_at" 
end 

def sort_direction 
    %w[asc desc].include?(params[:direction]) ? params[:direction] : "DESC/ASC" 
end 
Questions connexes