Cuando usa un booleano en Rails con Active Record y pregunta (por ejemplo) visible?
, comprueba si la columna es true
o no. Si es false
o nil
, visible?
devolverá false
.Rails scope with boolean
¿Cómo delimita un booleano para preguntar si el método ?
devolvería falso? Tengo esto:
scope :visible, where(hide: [nil, false])
pero me pregunto si hay una manera más limpia. ¿Hay alguna manera de escribir este alcance sin decir explícitamente nil
y false
? Si buscáramos lo contrario, podríamos simplemente escribir
scope :invisible, where(hide: true)
que parece más limpio. ¿Cuál es el mejor código para el alcance visible?
Por qué no darle a 'hide' un valor predeterminado en el DB, entonces el alcance se vería mucho más limpio:' scope: visible, where (hide: false) ' – Wukerplank
eso es lo que voy a hacer - I ' Sin embargo, preferimos evitar tener que obtener el DB estrictamente falso/verdadero. – Peter