diff options
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/quoting.rb | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb b/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb index b28eb3f758..1e0c5fe902 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb @@ -22,10 +22,14 @@ module ActiveRecord "'#{quote_string(value)}'" # ' (for ruby-mode) end - when nil then "NULL" - when true then (column && column.type == :integer ? '1' : quoted_true) - when false then (column && column.type == :integer ? '0' : quoted_false) + when true, false + if column && column.type == :integer + value ? '1' : '0' + else + value ? quoted_true : quoted_false + end # BigDecimals need to be put in a non-normalized form and quoted. + when nil then "NULL" when BigDecimal then value.to_s('F') when Numeric then value.to_s when Date, Time then "'#{quoted_date(value)}'" |