Rails:如何validation某些东西是布尔值?

轨道是否有一个像validates_numericality_of为布尔validation器,或者我需要滚动我自己?

由于Rails 3,你可以这样做:

 validates :field, inclusion: { in: [ true, false ] } 

我相信一个布尔字段,你将需要做一些事情:

 validates_inclusion_of :field_name, :in => [true, false] 

从旧版本的API :“这是由于对象#空白处理布尔值的方式。false.blank?#=> true”

我不确定这对Rails 3来说还是可以的,希望有帮助!

当我申请这个时,我得到:

来自shoulda-matchers的警告:

您正在使用validate_inclusion_of来断言一个布尔列允许布尔值并且不允许非布尔列。 请注意,这是不可能的,因为布尔列会自动将非布尔值转换为布尔值。 因此,你应该考虑删除这个testing。