即使存在未设置为true,Railsvalidation也需要数字化

我试图保存一个没有一个字段集的logging – 在模型中有一个有效的数字性。 即使validation中不需要存在,它仍然抛出一个错误,该字段不是一个数字。

validation:

validates :network_id, :numericality => true 

代码是保存模型:

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

错误:

 Validation failed: Network is not a number 

 validates :network_id, :numericality => true, :allow_nil => true 
  validates :network_id, :numericality => {:allow_blank => true} 

你应该使用allow_blank

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

在Rails 4( Ruby 2 )中,你可以写:

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