Rails: fuerza la cadena vacía a NULL en la base de datos

Existe una manera fácil (es decir, una configuración) de forzar a ActiveRecord a guardar cadenas vacías como NULL en la base de datos (si la columna lo permite)?

La razón de esto es que si tiene una columna de cadena NULLable en la base de datos sin un valor predeterminado, los nuevos registros que no establezcan este valor contendrán NULL, mientras que los nuevos registros que establezcan este valor en la cadena vacía no serán NULL, que conduce a inconsistencias en la base de datos que me gustaría evitar.

Ahora mismo estoy haciendo cosas como esta en mis modelos:

before_save :set_nil

def set_nil
  [:foo, :bar].each do |att|
    self[att] = nil if self[att].blank?
  end
end

que funciona pero no es muy eficiente o SECO. Podría factorizar esto en un método y mezclarlo en ActiveRecord, pero antes de seguir esa ruta, me gustaría saber si ya hay una manera de hacerlo.

Respuestas a la pregunta(7)

Su respuesta a la pregunta