2010-12-08 8 views
1

Ich habe eine Ruby on Rails-Anwendung, mit der Benutzer eine Box (Fitness-Studio) erstellen und dann Workouts erstellen können, so dass Benutzer sehen können, was sie an diesem Tag tun werden.Gibt es eine Möglichkeit, Datensätze nach created_at DESC aufzulisten, aber nur für aktuelle und vergangene Daten?

Box has_many :workouts 
Workout belongs_to :box 

Ich habe den Benutzer die Möglichkeit gegeben, das workout.created_at Feld zu bearbeiten und lassen Sie sie für zukünftige Termine Training geben. Auf der Seite /view/boxes/show.html.erb möchte ich nur Workouts anzeigen, die für das aktuelle Datum und in der Vergangenheit sind. Also im Wesentlichen möchte ich alle Workouts von created_at DESC auflisten, aber ich will keine zukünftigen Workouts. Gibt es eine Möglichkeit, dies in der Controller-Aktion zu tun?

@workouts = @box.workouts.all(:order => "created_at DESC") 

Wenn nicht, was ist der beste Weg, dies zu tun?

Antwort

4

Sie sollten nur in der Lage sein, in den zusätzlichen Bedingungen hinzufügen, um nur die ‚Vergangenheit‘ Datensätze zurück:

@workouts = @box.workouts.all(:order => "created_at DESC", :conditions => ["created_at <= ?", Time.now]) 

, dass alle Trainingseinheiten für ein bestimmtes Feld zeigen sollte, sondern nur diejenigen, die heute erstellt wurden oder in die Vergangenheit.

Verwandte Themen