2010-11-28 11 views
1

J'ai une page Web où des informations sont demandées. Mais une certaine valeur peut être vide. Mais si je sauvegarde plus d'une fois mon formulaire avec une valeur vide, cela dit que la valeur a déjà été prise. Ceci est normal puisque j'ai utilisé: validates_uniqueness_ofEnregistrer la valeur vide comme nulle dans la base de données

Ma question est la suivante: si je sauvegarde la valeur comme nulle, est-ce que ce problème sera résolu? Si oui, comment enregistrer la valeur comme nulle. Ou quelles sont les autres solutions s'il vous plaît ??

Merci d'avance.

Répondre

1

C'est dans les docs.

validates_uniqueness_of :my_value, :allow_blank => true 
+0

oui qui fonctionne. Merci beaucoup. – Goueg83460

2

Je personnellement pas utiliser la validation avec :allow_blank comme l'a fait et ont étau un rappel de before_validation qui a fixé la valeur à zéro si value.blank?

Quelque chose comme:

private 

def strip_spaces 
    attrib = nil if attrib.blank? 
end 

Le raisonnement est que les requêtes pour trouver ceux dont la valeur est définie serait du genre where attrib is null au lieu de where trim(attrib) = '' or attrib is null

Questions connexes