Reputation: 6451
I'm trying to save a record which doesn't have one field set -- which has a validate numericality in the models. Even though the presence is not required in the validation, it's still throwing an error that the field is not a number.
Validation:
validates :network_id, :numericality => true
Code to that is saving model:
networks.each do |network|
network.url = network.raw_data.link
network.save!
end
Error:
Validation failed: Network is not a number
Upvotes: 76
Views: 42825
Reputation: 7307
You can also write like this...
validates_numericality_of :network_id, allow_nil: true
Upvotes: 2
Reputation: 115511
You should use allow_blank
validates :network_id, :numericality => true, :allow_blank => true
Upvotes: 16
Reputation: 22224
In Rails 4 (Ruby 2), you can write:
validates :network_id, numericality: { greater_than_or_equal_to: 0, allow_nil: true }
Upvotes: 13
Reputation: 7810
validates :network_id, :numericality => {:allow_blank => true}
Upvotes: 43
Reputation: 18784
validates :network_id, :numericality => true, :allow_nil => true
Upvotes: 140