我正在尝试保存没有一个字段集的记录 - 它在模型中具有验证数字。即使在验证中不需要存在,它仍然会抛出该字段不是数字的错误。
验证
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
答案 0 :(得分:119)
validates :network_id, :numericality => true, :allow_nil => true
答案 1 :(得分:40)
validates :network_id, :numericality => {:allow_blank => true}
答案 2 :(得分:15)
您应该使用allow_blank
validates :network_id, :numericality => true, :allow_blank => true
答案 3 :(得分:11)
在Rails 4( Ruby 2 )中,你可以写:
validates :network_id, numericality: { greater_than_or_equal_to: 0, allow_nil: true }
答案 4 :(得分:0)
你也可以这样写......
validates_numericality_of :network_id, allow_nil: true