Соглашение 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.
прежде всего, есть руководство по стилю Ruby on Rails, управляемое сообществом, но он не содержит никаких соглашений об именовании столбцов даты.
одна подсказка активна Запись столбцов метки времени, как
created_at
как отметил @sierrasdetandil в своем ответе.другой способ выяснить, что некоторые конвенции, глядя на направляющие рельсы стиля популярных магазинов рельсов. Например thoughtbot состояние в их стиле руководства:
- имя столбца даты с
_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
также может быть логическим или строкой, которая объясняет состояние платежа. Поэтому я думаю, что это не ограничивается только рельсами.