Wie konvertiert man einen Hash-Wert, der von einem date_select in Schienen zurückgegeben wurde, in ein Date-Objekt?

8

Ich habe eine date_select in meiner Ansicht innerhalb eines Formulars, aber beim Senden ist der zurückgegebene Wert in einer Hash-Form wie folgt:

%Vor%

Wie kann ich das in ein Datumsformat in Schienen umwandeln, damit ich es als Bedingung für die Abfrage der Datenbank verwenden kann, z. B. :condition => {:dates == :some_date_from_date_select} ? Ich habe versucht, Date.parse(:some_date_from_date_select) aufzurufen, aber es hat nicht funktioniert, weil es eine Zeichenfolge und keine Hash-Map erwartet.

Gibt es einen Schienenweg, um dies zu tun?

Danke

    
Mo. 17.08.2010, 09:45
quelle

5 Antworten

9

Ich kenne keine Schienen, aber dieser "Einzeiler" macht's:

%Vor%

Oder mit weniger Magie:

%Vor%     
ngoozeff 17.08.2010, 09:51
quelle
2

Ich habe eine kurze Ein-Zeilen-Lösung dafür

%Vor%     
harrya 15.02.2013 16:36
quelle
1

Hier ist ein allgemeiner Weg, der auch partielle Daten / Zeiten und leere Felder unterstützt:

%Vor%

Beispielverwendung:

%Vor%     
Dia Kharrat 08.05.2013 09:12
quelle
1
%Vor%

Hinweis: Funktioniert in Ruby 1.9.2+, da es von der Reihenfolge der Hash-Elemente abhängt.

Zwei Leckereien hier:

manu3569 01.05.2014 00:19
quelle
0

Dieser spezielle Code (derjenige, der die Konvertierung durchführt) kann von lib/active_record/connection_adapters/abstract/schema_definitions.rb , Zeile Nr. 67, verfolgt werden, d. h. die Methode type_cast .

Diese beiden Methoden werden verwendet, um ein Datum aus einer Zeichenfolge zu generieren:

%Vor%     
Swanand 17.08.2010 12:09
quelle

Tags und Links