@josevalim, @pftg I can't seem to understand the logic behind this design. I came across this issue while trying to validate the presence of a boolean value that i am getting via an API request. The `PresenceValidator` class that is responsible for this validation, uses #blank? to determine if the value is there, and the legit value of false causes a validation error to rise.

Usually, forms that have boolean fields practice checkboxes that deliver a value no matter what (selected / unselected) but in my case the API caller, does not have this limitation and this required boolean value on my behalf needed to be validated.

Maybe @josevalim is right, and this change is way too deep, does refactoring `PresenceValidator` to handle false values as valid is a better approach? maybe adding an :allow_boolean option like the existing :allow_nil ?