aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2018-10-22 02:09:51 +0900
committerGitHub <noreply@github.com>2018-10-22 02:09:51 +0900
commit5a6200a5ad7cda067fd45bf3394569d8dd32924f (patch)
tree4af949d4f1c09d9944d25770cf38c7c7f2214b3f /activerecord/lib
parent26a202a91b5a4754be5e3e137c390786ec977e56 (diff)
parentffc9ed3d3b59dd76cfe3fc1ff6913bd1d2aaf462 (diff)
downloadrails-5a6200a5ad7cda067fd45bf3394569d8dd32924f.tar.gz
rails-5a6200a5ad7cda067fd45bf3394569d8dd32924f.tar.bz2
rails-5a6200a5ad7cda067fd45bf3394569d8dd32924f.zip
Merge pull request #34270 from eugeneius/read_write_attribute_allocations
Reduce string allocations in read/write_attribute
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/attribute_methods/read.rb7
-rw-r--r--activerecord/lib/active_record/attribute_methods/write.rb7
2 files changed, 6 insertions, 8 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/read.rb b/activerecord/lib/active_record/attribute_methods/read.rb
index ff0e863529..6e1275e990 100644
--- a/activerecord/lib/active_record/attribute_methods/read.rb
+++ b/activerecord/lib/active_record/attribute_methods/read.rb
@@ -29,10 +29,9 @@ module ActiveRecord
# it has been typecast (for example, "2004-12-12" in a date column is cast
# to a date object, like Date.new(2004, 12, 12)).
def read_attribute(attr_name, &block)
- name = if self.class.attribute_alias?(attr_name)
- self.class.attribute_alias(attr_name).to_s
- else
- attr_name.to_s
+ name = attr_name.to_s
+ if self.class.attribute_alias?(name)
+ name = self.class.attribute_alias(name)
end
primary_key = self.class.primary_key
diff --git a/activerecord/lib/active_record/attribute_methods/write.rb b/activerecord/lib/active_record/attribute_methods/write.rb
index 7f246eed46..455e67e19b 100644
--- a/activerecord/lib/active_record/attribute_methods/write.rb
+++ b/activerecord/lib/active_record/attribute_methods/write.rb
@@ -33,10 +33,9 @@ module ActiveRecord
# specified +value+. Empty strings for Integer and Float columns are
# turned into +nil+.
def write_attribute(attr_name, value)
- name = if self.class.attribute_alias?(attr_name)
- self.class.attribute_alias(attr_name).to_s
- else
- attr_name.to_s
+ name = attr_name.to_s
+ if self.class.attribute_alias?(name)
+ name = self.class.attribute_alias(name)
end
primary_key = self.class.primary_key