created_at Feld wird manchmal Null

8

Ich denke created_at wird immer auf den Zeitpunkt gesetzt, zu dem ein Datensatz von ActiveRecord erstellt wurde, aber ich habe festgestellt, dass einige Datensätze mit null created_at erstellt wurden. Gibt es eine Bedingung dafür?

    
yaotti 30.11.2011, 09:52
quelle

3 Antworten

1

Diese Spalten created_at, updated_at, created_on, updated_on werden automatisch von Ihnen auf Schienen behandelt.

Allerdings gibt es ein paar Hinweise:

  1. Ändern Sie nicht den Attr-Wert (d. h. created_at sollte vor dem Erstellen null sein und sollte vor dem Update nicht geändert werden ). Andernfalls aktualisiert ActiveRecord den Wert von attr nicht mit der aktuellen Uhrzeit.
  2. Überprüfen Sie, ob Ihr <ClassName>.record_timestamps auf true gesetzt ist.

Ich würde Ihnen auch empfehlen, diesen Spalten eine Nicht-Null-Einschränkung hinzuzufügen:

%Vor%

Auf diese Weise werden Sie sicher sein, dass diese Spalte immer einen Nicht-Null-Wert hat.

    
melekes 20.09.2012 20:54
quelle
1

Verwenden Sie attr_accessible oder attr_protected für Ihr Modell?

Da ohne diese grundlegenden Schutzmaßnahmen jede Aktualisierungsanforderung diese ansonsten nicht validierten & amp; ungeschützte Attribute.

Sicherheit für die Massenzuweisung

    
Mars 27.09.2012 05:40
quelle
0

Das einzige, woran ich gerade denken könnte, ist, dass Sie vielleicht das Attribut created_at aus Ihrer Sicht überschreiben.

%Vor%

Und der Wert, den Sie beim Übermitteln des Formulars übergeben, wird nicht korrekt von ActiveRecord konvertiert und wird zu nil .
Das created_at ist nicht dazu gedacht, manipuliert zu werden, es ist besser, ein anderes Feld wie creation_date zu erstellen und es standardmäßig so zu belassen. Aber das ist nur eine Vermutung.

    
MurifoX 20.09.2012 13:36
quelle

Tags und Links