diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2010-01-22 00:51:45 +0530 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2010-01-22 02:37:07 +0530 |
commit | 6d30002a52133bd105adb29084f4cc72b1ee847f (patch) | |
tree | e2c194d8b454b66daf4db58d770c1337d0c20399 /activerecord/lib/active_record/attribute_methods/query.rb | |
parent | a68a3e9af6a02c9ce18d3eec87558241095ce8fb (diff) | |
download | rails-6d30002a52133bd105adb29084f4cc72b1ee847f.tar.gz rails-6d30002a52133bd105adb29084f4cc72b1ee847f.tar.bz2 rails-6d30002a52133bd105adb29084f4cc72b1ee847f.zip |
Revert "Refactoring attributes/types" [#3348 state:open]
This reverts commit f936a1f100e75082081e782e5cceb272885c2df7.
Conflicts:
activerecord/lib/active_record.rb
activerecord/lib/active_record/base.rb
Revert "Fixed: #without_typecast should only disable typecasting on the duplicated attributes" [#3387 state:open]
This reverts commit 2831996483c6a045f1f38d8030256eb58d9771c3.
Reason :
It's not generating attribute methods properly, making object.column 5x slower.
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods/query.rb')
-rw-r--r-- | activerecord/lib/active_record/attribute_methods/query.rb | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/query.rb b/activerecord/lib/active_record/attribute_methods/query.rb index 0154ee35f8..a949d80120 100644 --- a/activerecord/lib/active_record/attribute_methods/query.rb +++ b/activerecord/lib/active_record/attribute_methods/query.rb @@ -8,7 +8,23 @@ module ActiveRecord end def query_attribute(attr_name) - _attributes.has?(attr_name) + unless value = read_attribute(attr_name) + false + else + column = self.class.columns_hash[attr_name] + if column.nil? + if Numeric === value || value !~ /[^0-9]/ + !value.to_i.zero? + else + return false if ActiveRecord::ConnectionAdapters::Column::FALSE_VALUES.include?(value) + !value.blank? + end + elsif column.number? + !value.zero? + else + !value.blank? + end + end end private @@ -19,5 +35,3 @@ module ActiveRecord end end end - - |