一个小坑
重现
有这么一个对象
class Article
attr_accessible :can_hidden
validates :can_hidden, presence: true
end
现在我创建一个不能被隐藏的文章: Article.create!(can_hidden: false)
Boom!!
ActiveRecord::RecordInvalid: 验证失败: can_hidden 不能为空
根源
追踪 PresenceValidator 可以发现问题出在这里:
解决办法
不要对 boolean 类型做 presence 校验,设置默认值
其它讨论及解决方案
enjoy!