2016-08-11 2 views
1

Ich habe ein Modell, das ein Datum enthält, das entweder anstehend oder vergangen sein kann. Ich möchte am liebsten die 3 kommenden Gegenstände sehen. Aber wenn es keine gibt, möchte ich diejenigen zeigen, die bereits vergangen sind, mit den neuesten zuerst.Zeigen Sie 3 Artikel basierend auf einem Datum, das in der Zukunft und in der Vergangenheit liegen kann

Also, wenn es alle zukünftigen Leben:

future - future - future

Wenn es nur zwei Zukunft ist:

past - future - future

Wie soll ich dies in meinem Modell erreichen?

+0

'Ich möchte am liebsten die 3 kommenden Artikel sehen.' was ist hier gemeint? –

+0

Sorry, Titel ist irreführend, ich dachte beim Schreiben der Post, dass der Anwendungsfall mit 3 Datensätzen für das Beispiel ausreichend war. Ich möchte also 3 Datensätze zeigen, wenn sie alle auftauchen. –

+0

wie eine Auswahl nach Datum? –

Antwort

0

Wenn der Bereich, den Sie möchten, können Sie dies für Ihren Fall anpassen.

month = Date.today 

range = ["`users`.`created_at`>= '#{month.beginning_of_month}') AND (`users`.`created_at` <= '#{month.end_of_month}'"] 

User.where(range) 
1

können Sie einfache Datenmanipulation mit Schienen durch Schienen verwenden .order Methode ex: Model.all.order('created_at DESC').limit(3)

Dies wird Ihnen den letzten 3 zukünftigen geben.

Verwandte Themen