即使存在未设置为true,Rails验证也需要数值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了即使存在未设置为true,Rails验证也需要数值相关的知识,希望对你有一定的参考价值。
我正在尝试保存一个没有一个字段集的记录 - 它在模型中具有验证数值。即使验证中不需要存在,它仍然会抛出该字段不是数字的错误。
验证:
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 }
另一答案
你也可以这样写...
validates_numericality_of :network_id, allow_nil: true
以上是关于即使存在未设置为true,Rails验证也需要数值的主要内容,如果未能解决你的问题,请参考以下文章
即使 Rails 服务器配置为接受所有请求,Angular 发布请求也未通过预检