diff options
author | Josh Susser <josh@hasmanythrough.com> | 2008-08-18 15:56:37 -0700 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2008-08-22 16:26:40 -0700 |
commit | e48e77e0222292176cd9f68658dd54524f582d9b (patch) | |
tree | b264ca7a6fb67fd7acad9d8f3eb1eb06fd8ddc41 /activerecord/lib | |
parent | 707ee0e2695e85186d59aa407f09691ebfcc3125 (diff) | |
download | rails-e48e77e0222292176cd9f68658dd54524f582d9b.tar.gz rails-e48e77e0222292176cd9f68658dd54524f582d9b.tar.bz2 rails-e48e77e0222292176cd9f68658dd54524f582d9b.zip |
coerce blank strings to nil values for boolean and integer fields
[#860 state:resolved]
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/base.rb | 13 | ||||
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb | 6 |
2 files changed, 13 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 45d9372842..2e139c5cc0 100644 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -2607,11 +2607,14 @@ module ActiveRecord #:nodoc: end def convert_number_column_value(value) - case value - when FalseClass; 0 - when TrueClass; 1 - when ''; nil - else value + if value == false + 0 + elsif value == true + 1 + elsif value.is_a?(String) && value.blank? + nil + else + value end end diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb index 98016ddab5..75032efe57 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb @@ -138,7 +138,11 @@ module ActiveRecord # convert something to a boolean def value_to_boolean(value) - TRUE_VALUES.include?(value) + if value.is_a?(String) && value.blank? + nil + else + TRUE_VALUES.include?(value) + end end # convert something to a BigDecimal |