2012-07-13 18 views
1

什么是在单个字段或属性中以不同精度存储日期/时间数据的好方法。例如,如果我有一个具有release_date属性的Movie类,并且有时它会是一个特定的日期,如2012-12-24,而其他时间可能只是1948年,而不是一个月或一天。 Ruby不允许使用零值日期部分。Rails和MongoDB中日期的任意精度

到目前为止,我唯一的想法是将数据以多态方式存储在另一个存储时间的字段中,数字或时间,日期值将始终作为整数存储,但即使这看起来真的很难看。除此之外,我能想到的是将每个数据部分分开存储,但这听起来像会使整理一场噩梦。

也许有一种常见的做法,我不知道。

+0

你最终使用了什么解决方案? – Stennie 2012-08-09 00:50:14

+0

如果我在必要的Mongoid位中添加了帮助从DB进行存储和调用的功能,部分日期看起来会很好。不应该太糟糕,因为它可以转换为/从一个整数开箱。然而,关于宝石有一些奇特的事情,在我扣动扳机之前我需要更多的关注。 – farski 2012-08-09 17:26:28

回答

0

使用partial-date宝石。

一个简单的日期类,可用于将部分日期值存储在 单个列/属性中。一个示例用例将包括一个存档, 或完整日期未知的商品。年份为 可选,可以为负值。月和日是可选的,但 月必须一天

PartialDate之前设置::日期采用的是30位寄存器作为后备存储 日期的情况下,和位摆弄获取或设置年,月,日的值。