1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 15:18:01 +00:00
Files
til/rails/cast-common-boolean-like-values-to-booleans.md

840 B

Cast Common Boolean-Like Values To Booleans

Sometimes you have to deal with values that are supposed to represent booleans, but they aren't actually boolean values (i.e. "t" instead of true). Rail's ActiveModel has a helper for casting these common boolean-like values to actual booleans.

> ActiveModel::Type::Boolean.new.cast('f')
=> false
> ActiveModel::Type::Boolean.new.cast('t')
=> true
> ActiveModel::Type::Boolean.new.cast('true')
=> true
> ActiveModel::Type::Boolean.new.cast('FALSE')
=> false
> ActiveModel::Type::Boolean.new.cast(0)
=> false
> ActiveModel::Type::Boolean.new.cast(1)
=> true
> ActiveModel::Type::Boolean.new.cast(true)
=> true
> ActiveModel::Type::Boolean.new.cast(false)
=> false

This cast method gives you a handy way to handle all thsoe different cases. This is available as of Rails 5+.