假设您正在实现发布数据库并创建迁移以表示不同的发布.每个出版物都有一个与之相关的"年份".
t.column :year, ???
今年最好表示为整数,日期或日期时间吗?
我建议使用整数.双方Date
并DateTime
有比你想更精确,这可能会产生误导.即使你只用一年初始化它们,它们也会存储一个默认的月和日(1月1日).例如,如果您使用Date
,您的输出将如下所示:
>> m = YourModel.create(:year => '2008') >> m.year.to_s => "2008-01-01"
如果你使用整数,你会得到你期望的:
>> m = YourModel.create(:year => '2008') >> m.year.to_s => "2008"
我建议只使用Rails约定并执行Date
数据类型.这样,如果您确实需要月和日,则可以检索它.此外,它很简单:
YourModel.date.year # => "1999"