2012-08-14 10 views
5

¿Hay algún problema con el valor predeterminado de un campo booleano en nil en lugar de false con una migración de ActiveRecord para usar con Postgres?Migración de carriles: ¿está bien utilizar 'nil' como valor predeterminado para un campo booleano?

Me gusta cómo proporciona un poco de datos adicionales, ya sea que ese campo se haya marcado como verdadero o falso todavía o no.

+1

Depende si el campo tiene en realidad tres estados (verdadero, falso, desconocido) o solo dos (verdadero, falso). –

+0

En realidad, no dependo del tercer estado "desconocido", solo un dato interesante que puedo verificar. La forma en que compruebo boolean vals no se descarta mediante el uso de nil. – bevanb

+3

No lo hagas si no lo necesitas. Mi política es hacer que todo NO sea NULO a menos que tenga una buena razón para permitir NULLs, las cosas se vuelven más fáciles de esa manera. –

Respuesta

7

no hay nada que le impida usar nula en booleano - pero personalmente me gustan mis booleanos para ser verdadera o falsa, he encontrado que el tener nula puede conducir a un cierto código feo

+1

Código feo de hecho. Si necesitas el tercer valor 'nil' /' unknown', entonces deberías estar usando una enumeración o una máquina de estados, creo. De lo contrario, solo estás luchando contra cosas y tienes la responsabilidad de garantizar que estás comprobando el valor 'cero' ** en todas partes **. –

Cuestiones relacionadas