it-swarm.com.de

Die Validierung von Rails erforderte die Numerizität, obwohl Präsenz nicht auf true gesetzt ist

Ich versuche, einen Datensatz zu speichern, für den kein Feldsatz festgelegt ist - und der eine gültige Numerizität in den Modellen aufweist. Obwohl das Vorhandensein in der Validierung nicht erforderlich ist, wird immer noch ein Fehler ausgegeben, dass das Feld keine Zahl ist.

Validierung:

validates :network_id,    :numericality => true

Code zum Speichern des Modells:

networks.each do |network|
  network.url = network.raw_data.link
  network.save!
end

Error:

Validation failed: Network is not a number
58
Hopstream
validates :network_id, :numericality => true, :allow_nil => true
119
Unixmonkey
    validates :network_id, :numericality => {:allow_blank => true}
39
p.matsinopoulos

Sie sollten allow_blank verwenden.

validates :network_id,    :numericality => true, :allow_blank => true
15
apneadiving

In Rails 4 ( Ruby 2 ) können Sie schreiben:

validates :network_id, numericality: { greater_than_or_equal_to: 0, allow_nil: true }
10
sergserg

Sie können auch so schreiben ...

validates_numericality_of :network_id, allow_nil: true
0
thedanotto