2010-07-12 8 views
1

Je cherche à mettre en œuvre la pagination basée sur une date. J'utilise un named_scope pour tirer une note pour aujourd'hui mais j'aimerais ajouter une fonctionnalité pour pouvoir avoir un lien précédent qui montrera une note pour hier.Rails pagination par date

Si je me trouvais sur la page d'hier, j'aimerais aussi pouvoir avoir un lien qui sera affiché avant-hier et un lien qui ira de l'avant un jour, jusqu'à aujourd'hui, et ainsi de suite Je me demande s'il y a des aides ou des plugins qui pourraient accomplir cela simplement ou si quelqu'un pourrait me pointer dans la bonne direction (j'ai du mal à savoir quoi chercher même).

Vive

Tom

Répondre

2

Ce n'est pas exactement la pagination parce que finalement vous pourriez avoir plus de n (où n = enregistrements per_page) les enregistrements comptent pour une date donnée, je pense que vous devriez écrire un previous_day et next_day aide en utilisant les méthodes yesterday et tomorrow, quelque chose comme:

def previous_day_for(date) 
    link_to "previous", your_filter_path(:date => date.yesterday.to_s(:db)) 
end 

def next_day_for(date) 
    link_to "next", your_filter_path(:date => date.tomorrow.to_s(:db)) 
end 

espérons qu'il vous aidera!

+0

Je pense que le point est que la pagination basée sur la date utiliserait une date et abandonnerait le concept entier d'une valeur par page. – Matchu

0

Avez-vous pensé à utiliser le plugin will_paginate et à définir la taille de la page à 1? Si vous triez les données par date, alors vous pourriez avoir votre pagination fonctionnant avec 1,2,3. Les liens peuvent être personnalisés, ou vous pouvez créer vos propres aides qui changent des liens en utilisant la fonction page_link

will_paginate: http://github.com/mislav/will_paginate

documentation page_link: http://gitrdoc.com/rdoc/mislav/will_paginate/b3b0f593ea9b1da13a64bc825dfe17b6bbc2828b/classes/WillPaginate/LinkRenderer.html#M000159

J'espère que cela aide!