2012-08-14 33 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

相關問題