11

Chcę, aby rusztowanie tak:Ruby on Rails konwencji nazewnictwa pól date/czas

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

Dodałem „_at” do pola datetime, ponieważ wydawało się, że konwencja jak szyny timestamp pola są "_at" dla datetime lub "_on" dla daty. Ale czy to rzeczywiście jest konwencja? Czy to w porządku, jeśli po prostu "zapłaciłem" zamiast "paid_at" i "completed" zamiast "completed_at"?

Naprawdę chcę to wszystko od samego początku. Programowałem w języku C# od lat, ale jestem nowy, by ruby ​​na szynach. Lubię wszystkie konwencje i chcę mieć pewność, że robię to w odpowiedni sposób "na szynach".

Odpowiedz

26

Nie znam żadnej konkretnej konwencji szyn i nie ma to większego znaczenia, ponieważ nie ma nic w szynach, które blokują pola datetime. Konwencją, z którą zawsze chodziłem, są kolumny datetime sufiksu z _at i kolumny daty z _on. Zawsze wydawało się to bardziej naturalne w danym dniu i czasie.

+0

Nic nie łamie, jeśli nie wykonasz go, ale to konwencja nazewnictwa. – Steve

+0

Zgadzam się z tą konwencją, ponieważ wyraźnie wskazują one czas/datę/dzień w stosunku do zwykłej daty. Posiadanie pola takiego jak Employee.hired_at brzmi śmiesznie w stosunku do Employee.hired_on brzmi idealnie. Podobnie jak w przypadku wielu rzeczy, nie ma znaczenia, co robisz, dopóki jesteś konsekwentny. – mroach

1

Prawdopodobnie nie jest to konwencja w Railsach, ale faktycznie ma sens dołączenie _at na końcu kolumny daty/datetime. W porównaniu do tylko paid, daje pojęcie, że pracujesz z obiektem daty/datetime, podczas gdy paid może być również boolowskim lub ciągiem, który wyjaśnia status płatności. Sądzę więc, że nie ogranicza się to tylko do Railsów.

3

Faktycznie, nie jest konwencja w Rails dla nazw dwóch konkretnych kolumn datownika: created_at i updated_at mają specjalne zachowań. Od Active Record Basics — Ruby on Rails Guides; 2.2 Schema Conventions

Istnieją również opcjonalne nazwy kolumn, które dodają dodatkowe funkcje usługi Active przypadkach rekord:

  • created_at - Automatycznie pobiera ustawiony na bieżącą datę i czas, kiedy rekord jest pierwszy stworzył.
  • updated_at - Automatycznie zostaje ustawiona aktualna data i czas, gdy rekord jest aktualizowany.
  • ...

Nie ma wzmianki w tej stronie nazwy kolumn zakończonych na "_on".

3

Sposób nazywania kolumn daty i godziny nie jest oficjalnie ustaloną konwencją i nie wpływa na sposób działania kodu. Jednakże, jeśli chcesz pójść »po torze Rails«, powinieneś prawdopodobnie przestrzegać konwencji powszechnie akceptowanych w społeczności rails.

  • Przede wszystkim, istnieje a community-driven Ruby on Rails style guide, ale nie zawiera żadnych kolumn data konwencje nazewnictwa.

  • Jedna wskazówka to kolumny datownika rekordu aktywnego, takie jak created_at jako @sierrasdetandil odnotowane w odpowiedzi.

  • Innym sposobem na ustalenie, czym są niektóre konwencje, jest zapoznanie się z przewodnikami w stylu Rails w popularnych sklepach Rails.Na przykład thoughtbot state in their style guide:

  • Data Nazwa kolumny z _on przyrostków.
  • Nazwy datetime kolumn z przyrostkami _at.
  • Kolumny czasu nazwy (odnoszące się do pory dnia bez daty) z przyrostkami _time.

Pomoże to znaleźć dobre nazwy dla kolumn i zapobiec pomyłkom dla innych programistów. Uważam, że jest to dobra konwencja do naśladowania, a ty także możesz, o ile nie masz nieodpartego powodu, by nazywać kolumny inaczej.