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.