Legen Sie den Standardwert für date_field in Rails 4 fest

8

Ich habe ein paar Formulare in meiner Anwendung, die date_select verwenden und ich habe mich gerade dazu entschieden, date_field zu verwenden (was die HTML5-Formularelemente verwendet). Das einzige Problem ist, dass date_select standardmäßig ist zum heutigen Datum, das für uns perfekt war, aber date_field ist stattdessen auf dd/mm/yyyy voreingestellt.

Ich stoße auf Probleme mit Leuten, die blind das Formular abschicken und Validierungsfehler auslösen.

Ist es möglich, date_field auf heute zu setzen?

    
Arcath 18.09.2013, 08:42
quelle

8 Antworten

15

Wenn Sie Rails4 per Juwel installiert haben, hat es unten noch Bug.

Ссылка

Fix oben und Sie können den Standardwert wie folgt einstellen

%Vor%     
azihsoyn 10.10.2013 04:14
quelle
2

Sie können das Standarddatumsfeld wie folgt einstellen

%Vor%     
techvineet 18.09.2013 08:49
quelle
2

Dies wird korrekt ausgeführt:

%Vor%     
SSR 10.01.2014 11:09
quelle
2

Keine dieser Optionen funktionierte für mich und versuchte, date_field_tag zu verwenden.

Was hat Arbeit den Wert wie folgt übergeben:

date_field_tag(:my_thing_end_date, :end_date, value: Date.current.strftime('%Y-%m-%d')

Aus der Dokumentation ( Ссылка )

  

Der Standardwert wird generiert, indem versucht wird, "to_date" für den Objektwert aufzurufen, wodurch er sich wie erwartet verhält für Instanzen von DateTime und ActiveSupport :: TimeWithZone.

Die Übergabe des Datums als Zeichenfolge, die vom Benutzer eingegeben werden sollte, scheint also die Lösung zu sein.

Auch nach diesen guten Informationen zu Daten und Zeitzonen ist Date.current besser als Time.today : Ссылка .

    
Mike Vallano 12.12.2016 22:37
quelle
1
%Vor%     
vanboom 25.06.2015 13:56
quelle
0

Das Verwenden des Time-Objekts für ein Datumsfeld funktionierte für mich nicht, ich musste das Date-Objekt verwenden.

  1. Ich habe einen Platzhalter für Browser wie Safari verwendet, um sie zur korrekten Formatierung zu führen, wenn sie als Textfeld gerendert wird.
  2. Wenn der Wert bereits vorhanden ist (z. B. wenn Sie in der Aktion #edit sind), muss er stattdessen diesen Wert verwenden

Ergebnislistencode für Rails 4:

%Vor%     
Michael 09.04.2015 14:14
quelle
0

In Rails für Sie können Sie auch Folgendes tun: '& lt;% = f.date_field: Geburtstag,: Wert = & gt; Date.today% & gt;

    
David 19.11.2015 22:31
quelle
0

Das Festlegen des Wertes ":", wie viele dieser Antworten vorschlagen, überschreibt einen Wert, der für jeden Datensatz, der gerade bearbeitet wird, übergeben wird. Das ist kein Problem, wenn das Formular nur für neue Einträge, aber fehlerhaft ist, wenn Sie Datensätze in dem Formular bearbeiten möchten. Eine Möglichkeit ist es, das existierende Objekt explizit zu erfassen, wie Michael es vorschlägt.

Die Lösung, die ich momentan verwende, befindet sich im Controller, der den Wert auf heute setzt, wenn er den neuen Datensatz erstellt. Angenommen, Ihr Modell ist Person und der Wert, den Sie festlegen möchten, ist start_date:

%Vor%

Sie können dann einfach den Wert im Formular ohne zusätzlichen Aufwand verwenden.

%Vor%     
Jemima 02.11.2016 15:01
quelle

Tags und Links