2012-08-14 66 views
5

有没有什么错误的默认布尔字段为nil而不是false与ActiveRecord迁移用于Postgres?Rails迁移:可以使用'nil'作为布尔型字段的默认值吗?

我喜欢它如何提供一点额外的数据 - 无论该字段是否已被标记为真或假。

+1

取决于如果你的领域实际上有三种状态(真,假,未知)或两种(真,假)。 – 2012-08-14 04:00:21

+0

我实际上并不依赖第三个“未知”状态,只是我可以检查的一个有趣的数据。我检查布尔值的方式不会被使用nil抛出。 – bevanb 2012-08-14 04:06:01

+3

不要这样做,如果你不需要它。我的政策是让所有东西都不是NULL,除非我有足够的理由允许NULL,否则事情变得更容易。 – 2012-08-14 04:35:32

回答

7

没有什么可利用布尔零阻止你 - 但我个人很喜欢我的布尔值是真或假,我发现有零会导致一些丑陋的代码

+1

确实丑陋的代码。如果你需要第三个'nil' /'unknown',那么你真的应该使用枚举或我认为的状态机。否则,你只是在与事情作斗争,而且你的责任是确保你在任何地方都检查'nil'值**。 – 2015-10-29 22:00:21

相关问题