Versuch, die Telefonnummernüberprüfung auf Datenbankebene zu schreiben, die genau 10 Ziffern benötigt.Integer-Validierung mit genau 10 Stellen bei Migrationen
Versuchtet.integer :phone, null: false
t.integer :phone, null: false, size: 10
t.integer :phone, null : false, limit: 5
Aber es hat nicht funktioniert.
Meine Ergebnisse
:limit Numeric Type Column Size Max value
1 tinyint 1 byte 127
2 smallint 2 bytes 32767
3 mediumint 3 bytes 8388607
nil, 4, 11 int(11) 4 bytes 2147483647
5..8 bigint 8 bytes 9223372036854775807
Wenn ich nicht Grenze bestanden hat, begeht es 123
und lehnt 9999999999
zu begehen. aufgrund von nicht min Wert und max Wert (2147483647)
Einschränkungen.
Sie müssen genau 10 Ziffern in die Datenbank eingeben, weniger noch mehr.
Dank @Hieu eine Migration mit Einschränkung hinzufügen können, aber Ihre Lösung ist verwandte um die Validierung zu modellieren. Wenn ich 'User.new (phone: 1234567890123) .save (validate: false) 'es nicht validieren kann, so muss ich auch auf Datenbankebene einschränken. – SpunkyLive
Überprüfen Sie mein Update mit DB-Einschränkung –