11

Ich möchte ein Gerüst wie diese machen:Ruby on Rails-Konvention Datums-/Uhrzeitfelder für die Benennung

rails generate scaffold Job started_at:datetime completed_at:datetime price:decimal paid_at:datetime estimated_completion_at:datetime comment:text 

Ich habe „_at“ zu den Datetime-Felder hinzugefügt, weil das schien die Konvention zu sein, wie Zeitstempel Schienen Felder sind entweder "_at" für datetime oder "_on" für date. Aber ist das eigentlich eine Konvention? Ist es in Ordnung, wenn ich anstelle von "bezahlt_at" und "abgeschlossen" anstelle von "abgeschlossen_at" nur "bezahlt" habe?

Ich möchte das von Anfang an richtig machen. Ich programmiere seit Jahren in C#, aber ich bin neu in Ruby on Rails. Ich mag alle Konventionen, und ich möchte sicherstellen, dass ich das auf die richtige Art und Weise mache.

Antwort

26

Ich kenne keine speziellen Schienenkonventionen, und es ist nicht wirklich wichtig, da es in den Schienen nichts gibt, was die datetime-Felder ausschließt. Die Konvention, mit der ich immer gegangen bin, ist Suffix datetime Spalten mit und Datumsspalten mit _on. Es schien immer natürlicher an einem Tag und zu einer Zeit zu sagen.

+0

Es bricht nichts, wenn Sie nicht folgen, aber das ist die Namenskonvention. – Steve

+0

Ich stimme dieser Konvention zu, da sie ziemlich deutlich eine Zeit/Datum-Zeit gegenüber einem reinen Datum angeben. Ein Feld wie Employee.hired_at klingt lächerlich im Vergleich zu Employee.hired_on klingt perfekt. Wie bei vielen Dingen ist es nicht wichtig, was Sie tun, solange Sie konsistent sind. – mroach

1

Es ist wahrscheinlich keine Konvention in Rails, aber es macht tatsächlich Sinn, am Ende der Date/Datetime Spalten anzufügen. Verglichen mit nur paid, paid_at gibt Ihnen die Vorstellung, dass Sie mit einem Date/Datetime-Objekt arbeiten, während paid auch ein Boolean oder eine Zeichenfolge sein kann, die den Status der Zahlung erläutert. Also denke ich, das ist nicht nur auf Rails beschränkt.

3

Eigentlich gibt ist eine Konvention in Rails für die Namen von zwei bestimmten Zeitstempel Spalten: created_at und updated_at spezielle Verhaltensweisen haben. von Active Record Basics — Ruby on Rails Guides; 2.2 Schema Conventions

Es gibt auch einige optionale Spaltennamen, die zusätzliche Funktionen Active Record-Instanzen hinzufügen wird:

  • created_at - automatisch auf das aktuelle Datum und die Uhrzeit eingestellt wird, wenn der Datensatz erstellt wird.
  • updated_at - Wird automatisch auf das aktuelle Datum und die aktuelle Uhrzeit gesetzt, wenn der Datensatz aktualisiert wird.
  • ...

Es gibt keine Erwähnung in der Seite der Spaltennamen in "_on" endet.

3

Wie Sie Ihre Datums- und Uhrzeitspalten benennen, ist keine offiziell festgelegte Konvention und hat keinen Einfluss auf die Funktionsweise Ihres Codes. Wenn Sie jedoch »den Weg der Schiene« gehen wollen, sollten Sie wahrscheinlich den allgemein in der Rails-Community akzeptierten Konventionen folgen.

  • Zunächst einmal ist es eine a community-driven Ruby on Rails style guide, aber es enthält keine Datumskonventionen Spalte Namensgebung.

  • Ein Hinweis sind die Active-Record-Timestamp-Spalten, wie created_at als @sierrasdetandil in ihrer Antwort notiert.

  • Eine andere Möglichkeit, herauszufinden, was einige Konventionen sind, ist die Rails-Style-Guides beliebter Rails-Shops.Zum Beispiel thoughtbot state in their style guide:

  • Name date Spalten mit _on Suffixe.
  • Name datetime Spalten mit _at Suffixen.
  • Name Zeit Spalten (bezogen auf eine Uhrzeit ohne Datum) mit _time Suffixe.

Dies wird Ihnen helfen, für andere Entwickler gute Namen für Ihre Spalten und verhindert Verwirrung finden. Ich denke, dies ist eine gute Konvention, die Sie befolgen sollten, und Sie können es auch, solange Sie keinen zwingenden Grund haben, Ihre Spalten anders zu benennen.