Ruby on rails约定用于命名日期/时间字段

Dea*_*ean 14 coding-style ruby-on-rails naming-conventions ruby-on-rails-3

我想做一个像这样的脚手架:

rails generate scaffold Job started_at:datetime completed_at:datetime price:decimal paid_at:datetime estimated_completion_at:datetime comment:text
Run Code Online (Sandbox Code Playgroud)

我在日期时间字段中添加了"_at",因为这似乎是惯例,因为rails时间戳字段对于datetime是"_at",对于date是"_on".但这实际上是一个惯例吗?如果我只是"付费"而不是"paid_at"和"completed"而不是"completed_at",这样可以吗?

我真的想从一开始就做到这一点.我已经用c#编程多年了,但我是ruby on rails的新手.我喜欢所有的约定,我想确保我正在做这个正确的'rails方式'.

Clu*_*ter 31

我不知道任何特定的rails约定,并且它并不重要,因为在rails中没有任何东西可以关闭datetime字段.我总是使用的约定是带有_atdate和date列的后缀datetime列_on.在一天一次说出来似乎更自然.


amo*_*ebe 9

如何命名日期和时间列不是官方声明的约定,不会影响代码的工作方式.但是,如果您想要使用"Rails方式",您应该遵循rails社区中普遍接受的约定.

  • 命名带有_on后缀的日期列.
  • 命名带有_at后缀的datetime列.
  • 使用_time后缀命名时间列(指没有日期的时间).

这将帮助您为列找到好名称,并防止其他开发人员混淆.我认为这是一个很好的约定,你也可以,只要你没有令人信服的理由以不同的方式命名你的列.


sie*_*dil 5

其实,有两个特定时间戳列的名称在Rails的一个约定:created_atupdated_at有特殊的行为.来自 Active Record Basics - Ruby on Rails指南; 2.2模式约定

还有一些可选的列名称将为Active Record实例添加其他功能:

  • created_at - 自动设置为首次创建记录时的当前日期和时间.
  • updated_at - 每当记录更新时自动设置为当前日期和时间.
  • ...

在该页面中没有提到以"_on"结尾的列名.