Соглашение Ruby on rails для именования полей даты / времени

Я хочу сделать такой эшафот:

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

Я добавил " _at "в поля datetime, потому что это, казалось, соглашение, поскольку поля метки времени rails являются" _at "для datetime или" _on " для date. Но действительно ли это конвенция? Ничего, если я просто " заплатил "вместо" paid_at "и" завершен "вместо"completed_at"?

Я действительно хочу получить это право с самого начала. Я много лет программирую на c#, но я новичок в ruby on rails. Я как и все конвенции, и я хочу убедиться, что я делаю это правильный "рельсовый путь".

4 ответов


Я не знаю какого-либо конкретного соглашения rails, и это не имеет значения, так как в rails нет ничего, что отключает поля datetime. Конвенции я всегда шел с колонок суффикс datetime с _at и столбца "дата" с _on. Всегда казалось более естественным говорить в один день и в одно время.


как вы называете свои столбцы даты и времени, не является официально заявленным соглашением и не влияет на то, как работает ваш код. Однако, если вы хотите пойти "по рельсам", вы, вероятно, должны следовать соглашениям, общепринятым в сообществе rails.

  • имя столбца даты с _on суффиксы.
  • назовите столбцы datetime с _at суффиксы.
  • имя столбцы (ссылающиеся на время суток без даты) с _time суффиксы.

Это поможет вам найти хорошие имена для ваших столбцов и предотвратить путаницу для других разработчиков. Я думаю, что это хорошая конвенция, и Вы тоже можете, пока у вас нет убедительной причины называть свои столбцы по-другому.


на самом деле, есть is соглашение в Rails для имен двух конкретных столбцов метки времени:created_at и updated_at особые алгоритмы. От Active Record Basics-Ruby on Rails Guides; 2.2 соглашения схемы

есть также некоторые дополнительные имена столбцов, которые добавят дополнительные функции для активных экземпляров записей:

  • created_at - автоматически устанавливается текущая дата и время, когда запись сначала создается.
  • updated_at - автоматически получает значение текущей даты и времени при обновлении записи.
  • ...

на этой странице нет упоминания имен столбцов, заканчивающихся на "_on".


это, вероятно, не конвенция в Rails, но на самом деле имеет смысл добавить _at в конце столбцов date/datetime. По сравнению с просто paid, paid_at дает вам представление, что вы работаете с объектом date/datetime, тогда как paid также может быть логическим или строкой, которая объясняет состояние платежа. Поэтому я думаю, что это не ограничивается только рельсами.