Cast a value to a type that the database understands. For example,
SQLite does not understand dates, so this method will convert a Date to a String.
# File activerecord/lib/active_record/connection_adapters/abstract/quoting.rb, line 36
def type_cast(value)
case value
when Symbol, ActiveSupport::Multibyte::Chars, Type::Binary::Data
value.to_s
when true then unquoted_true
when false then unquoted_false
# BigDecimals need to be put in a non-normalized form and quoted.
when BigDecimal then value.to_s("F")
when nil, Numeric, String then value
when Type::Time::Value then quoted_time(value)
when Date, Time then quoted_date(value)
else raise TypeError, "can't cast #{value.class.name}"
end
end