J'ai ma validation dans la moelle comme suit: mais cela ne suffit pas car l'utilisateur peut saisir une valeur de "42.22222222121212121212 ..." qui n'est pas prévu. Donc, comment valider l'entrée pour avoir uniquement
5 Réponses :
Pourquoi ne pas masser l'entrée après l'avoir reçu? Vous devriez l'arrondir à deux décimales vous-même à mon avis et ne laissez pas l'utilisateur à s'inquiéter de cela. P>
rails propose rond_with_precision alors appelez-le (2) sur Votre flotteur arrondirait à 2 décimales. P>
La classe Sprintf Ruby offre la possibilité de spécifier le nombre de décimales à afficher. Pour par exemple. Dans un exemple ci-dessous, je reçois la notation moyenne d'une piste et que la moyenne est arrondie à 1 décimale.
sprintf("%.1f",track.ratings.average('rating'))
Vous pouvez essayer ceci:
validates_format_of :shoe_size, :with => /^\d+\.*\d{0,2}$/
@Warren répondez mais sortez le * et mettre un? Parce que tu pouvais faire 3 ..... 0 mais avec? Vous pouvez avoir zéro ou un.
:with => /^\d+\.?\d{0,2}$/
Construire la réponse de @ Bitterzoet, mais en faisant toujours une validation (via Le Valider code> méthode ):