Schienen Spielraum für die Werte nur zwischen zwei Datumsangaben
Möchte ich einen Rahmen in Rails für die Auswahl nur Werte zwischen zwei Datumsangaben.
Hier ist mein Beispiel:
Habe ich ein Modell mit dem Attribut 'startDate' und 'endDate'. Beide haben den Typ 'Datum'
Nun möchte ich wählen Sie jeden Eintrag von heute, die sich zwischen diesen beiden Daten.
Machte ich einen Umfang sieht wie folgt aus.
class Product < ActiveRecord::Base
scope :activeDate, -> { where("? >= ? AND ? <= ?", Time.now.to_date, :saleStartDate, Time.now.to_date, :salesEndDate)}
In der Steuerung:
@products = Product.activeDate
Leider funktioniert es nicht. Gibt es ein Schienen-Weg (schöner), um alle Einträge?
Vielen Dank.
- Ruby-Konvention würden Ihr Geltungsbereich genannt active_date statt activeDate.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies tun:
Da Sie über größere oder gleich UND weniger oder gleich, können Sie die entsprechende SQL-Funktion "ZWISCHEN".
Brauchen Sie nicht zu konvertieren, die Zeit auf ein Datum,können Sie direkt das Datum.heute:
Könnte man verbessern, Ihren Umfang dadurch:
Und verwenden Sie es wie diese:
startDate
oderendDate
erhalten Sie möglicherweise eine mehrdeutige Spalte " Referenz-Fehler. Ich fest, dass mitwhere("? BETWEEN #{table_name}.startDate AND #{table_name}.endDate"
in meinem Fall.