Skip to Content Skip to Search


BigInteger = ActiveModel::Type::BigInteger
Binary = ActiveModel::Type::Binary
Boolean = ActiveModel::Type::Boolean

Active Model Type Boolean

A class that behaves like a boolean type, including rules for coercion of user input.


Values set from user input will first be coerced into the appropriate ruby type. Coercion behavior is roughly mapped to Ruby's boolean semantics.

  • “false”, “f” , “0”, 0 or any other value in FALSE_VALUES will be coerced to false

  • Empty strings are coerced to nil

  • All other values will be coerced to true

Decimal = ActiveModel::Type::Decimal
Float = ActiveModel::Type::Float
ImmutableString = ActiveModel::Type::ImmutableString
Integer = ActiveModel::Type::Integer
String = ActiveModel::Type::String
Value = ActiveModel::Type::Value

Class Public methods

register(type_name, klass = nil, **options, &block)

Add a new type to the registry, allowing it to be referenced as a symbol by ActiveRecord::Base.attribute. If your type is only meant to be used with a specific database adapter, you can do so by passing adapter: :postgresql. If your type has the same name as a native type for the current adapter, an exception will be raised unless you specify an :override option. override: true will cause your type to be used instead of the native type. override: false will cause the native type to be used over yours if one exists.

# File activerecord/lib/active_record/type.rb, line 37
def register(type_name, klass = nil, **options, &block)
  registry.register(type_name, klass, **options, &block)