Est-il un moyen facile (c'est à dire une configuration) pour forcer ActiveRecord pour enregistrer les chaînes vides comme des NULL dans la base de données (si la colonne permet)?
La raison pour cela est que si vous avez un NULLable chaîne de colonne dans la base de données sans valeur par défaut, les nouveaux enregistrements qui ne définissez pas cette valeur contient la valeur NULL, alors que de nouveaux enregistrements de définir cette valeur à la chaîne vide ne sera pas NULLE, qui conduit à des incohérences dans la base de données que je voudrais éviter.
Maintenant je suis en train de faire des choses comme cela dans mes modèles:
before_save :set_nil
def set_nil
[:foo, :bar].each do |att|
self[att] = nil if self[att].blank?
end
end
ce qui fonctionne, mais n'est pas très efficace ou SECS. Je pourrais facteur sur une méthode et mélanger à ActiveRecord, mais avant de m'en aller dans cette voie, je voudrais savoir si il existe un moyen de le faire déjà.