Ich habe Projekte und Zuschüsse, die durch eine Übereinstimmung verbunden sind. Die Förderung hat ein Ablaufdatum. Ich möchte die Übereinstimmungen eines Projekts nach dem Ablaufdatum der Gewährungen sortieren.Wie kombiniere ich wo und Bestellung für SQL-Abfrage
Das bin ich die Spiele Verfallsdatum erhalten basiert auf:
def self.expires_date_between(from, to)
Match.where(:grant_id => Grant.where("expires_at >= ? and expires_at <= ?", from, to))
end
Und dies zeigt die auf einem bestimmten Datumsbereich basierend Streichhölzer.
def current_matches
range = user.current_period_range
matches.expires_date_between(range[0], range[1])
end
Dies funktioniert gut, die Zuschüsse auf einen bestimmten Zeitraum anhand zu zeigen, aber die Zuschüsse werden nicht geschaltet, um auf dem neuesten Stand (expires_at). Es scheint, dass Grants nach dem Erstellungsdatum sortiert werden. Wie kann ich meine Abfrage so ändern, dass die Zuweisungen in der Reihenfolge ihres Ablaufdatums aufgelistet werden?
Ich habe versucht:
def self.expires_date_between(from, to)
Match.where(:grant_id => Grant.where("expires_at >= ? and expires_at <= ?", from, to).order('expires_at asc'))
end
Dieser keinen Fehler werfen, aber es ist auch nicht die Reihenfolge der Zuschüsse ändern. Irgendwelche Ideen?
Sie den 'BETWEEN' Betreiber nicht vergessen, die Sie mit' wo (expires_at verwenden können: von .. bis) '. – tadman
danke für den Tipp, das macht meinen Code viel sauberer! – railsie