Quick, what’s wrong with this Rails migration?
add_column :users, :admin, :boolean
Yep – it can be null. Your Boolean column is supposed to be only true or false. But now you’re in the madness of three-state Booleans: it can be true, false, or NULL.
Awesome post from the genius guys at Thoughtbot. This is how to do booleans in Rails:
add_column :users, :admin, :boolean, null: false, default: false