Rails presence validation fails on value 0
我有一个类似于以下的模型,
1 2 3 4 5 6 | class Activity < ActiveRecord::Base attr_accessible :name, :admin validates :name, :presence => true validates :admin, :presence => true end |
name属性是一个字符串,admin属性在迁移中定义为boolean。
如果我尝试在控制台中使用创建模型的实例,
1 | a = Activity.create(:name => 'Test', :admin => 0) |
然后验证失败,说我需要为Admin提供一个值。 为什么? 我提供了一个值。
我能理解,如果我没有提供任何价值,或者我提供了零。 但为什么像0这样的值(或者甚至是假的)会导致验证失败?
您可以将其重写为:
按照Rails指南中的建议:ActiveRecord验证
另请参阅Ruby on Rails中nil v.vull v.blank的简明解释
Rails 4/5
1 | validates :name, absence: true |