与RoR代表一年?

时间:2008-12-04 08:34:13

标签: ruby-on-rails ruby

假设您正在实现发布数据库并创建迁移以表示不同的发布。每个出版物都有一个与之相关的“年份”。

t.column :year, ???

今年最好表示为整数,日期或日期时间吗?

3 个答案:

答案 0 :(得分:9)

我建议使用整数。 DateDateTime都比您想要的更精确,这可能会产生误导。即使你只用一年初始化它们,它们也会存储一个默认的月和日(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"

答案 1 :(得分:7)

我建议只使用Rails约定并执行Date数据类型。这样,如果你需要月和日,你可以检索它。此外,它很简单:

YourModel.date.year  # => "1999"

答案 2 :(得分:0)

好吧,如果您只关心,整数就会恰到好处。如果你不确定你永远不会需要月和日,那么日期,如果你还需要小时/分钟/秒,那么日期时间,但如果你需要一个日期时间,它不应该被称为年: - )