Ruby on rails convention для обозначения полей даты/времени
Я хочу сделать эшафот следующим образом:
rails generate scaffold Job started_at:datetime completed_at:datetime price:decimal paid_at:datetime estimated_completion_at:datetime comment:text
Я добавил "_at" в поля datetime, потому что это казалось соглашением, поскольку поля timestamp rails либо "_at" для datetime, либо "_on" для даты. Но разве это конвенция? Это нормально, если я просто "заплатил" вместо "paid_at" и "завершен" вместо "completed_at"?
Я действительно хочу получить это с самого начала. Я программировал в С# в течение многих лет, но я новичок в рубинах на рельсах. Мне нравятся все соглашения, и я хочу убедиться, что я делаю это правильно "путь рельсов".
Ответы
Ответ 1
Я не знаю какого-либо конкретного соглашения с рельсами, и это не имеет большого значения, поскольку в рельсах нет ничего, что отделяет поля datetime. В конвенции, с которой я всегда встречался, есть столбцы datetime suffix с столбцами _at
и date с _on
. Всегда казалось естественным говорить в один и тот же день и за один раз.
Ответ 2
На самом деле, существует соглашение в Rails для имен двух конкретных столбцов временной отметки: created_at
и updated_at
имеют особое поведение. Из
Активные записи - Ruby on Rails Guides; 2.2 Условные обозначения схемы
Также есть несколько необязательных имен столбцов, которые добавят дополнительные функции в экземпляры Active Record:
-
created_at
- автоматически устанавливается на текущую дату и время начала записи. -
updated_at
- автоматически устанавливается на текущую дату и время всякий раз, когда запись обновляется. - ...
На этой странице нет имен имен, заканчивающихся на "_on".
Ответ 3
Как вы называете свои столбцы даты и времени, не является официально заявленным соглашением и не влияет на то, как работает ваш код. Однако, если вы хотите пойти по пути Rails, вам следует, вероятно, следовать общепринятым конвенциям в сообществе rails.
- Обозначьте столбцы даты с суффиксами
_on
. - Укажите столбцы datetime с суффиксами
_at
. - Укажите временные столбцы (со ссылкой на время дня без даты) с суффиксами
_time
.
Это поможет вам найти хорошие имена для ваших столбцов и предотвратить путаницу для других разработчиков. Я думаю, что это хорошая конвенция, и вы тоже можете это сделать, если у вас нет веских причин, чтобы назвать ваши столбцы по-разному.
Ответ 4
Вероятно, это не соглашение в Rails, но на самом деле имеет смысл добавить _at
в столбцы конца даты/даты. По сравнению с paid
, paid_at
дает вам представление о том, что вы работаете с объектом date/datetime, тогда как paid
также может быть логическим или строкой, которая объясняет состояние платежа. Поэтому я предполагаю, что это не ограничивается только Rails.