aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorTieg Zaharia <tieg@kickstarter.com>2012-06-09 00:42:55 -0400
committerTieg Zaharia <tieg@kickstarter.com>2012-06-09 00:42:55 -0400
commit6e4a064256331f21b3b3107e2349f7e7adc6d8e6 (patch)
treeacc9d5600985045156fefb868459d078ae838447 /activerecord
parent8475cddc986d9401f1d56c511f79032b5daed7c7 (diff)
downloadrails-6e4a064256331f21b3b3107e2349f7e7adc6d8e6.tar.gz
rails-6e4a064256331f21b3b3107e2349f7e7adc6d8e6.tar.bz2
rails-6e4a064256331f21b3b3107e2349f7e7adc6d8e6.zip
ActiveRecord#attributes optimization: minimize objects created
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/attribute_methods.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/attribute_methods.rb b/activerecord/lib/active_record/attribute_methods.rb
index 06b66b5195..7fc3b2bb5d 100644
--- a/activerecord/lib/active_record/attribute_methods.rb
+++ b/activerecord/lib/active_record/attribute_methods.rb
@@ -181,7 +181,9 @@ module ActiveRecord
# Returns a hash of all the attributes with their names as keys and the values of the attributes as values.
def attributes
- Hash[@attributes.map { |name, _| [name, read_attribute(name)] }]
+ attrs = {}
+ attribute_names.each { |name| attrs[name] = read_attribute(name) }
+ attrs
end
# Returns an <tt>#inspect</tt>-like string for the value of the