aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2017-06-15 18:12:29 -0400
committerGitHub <noreply@github.com>2017-06-15 18:12:29 -0400
commite57d8d090d5d6860e3a5bb3257d6aed5b644ea25 (patch)
tree8d5c8f4e35e69c64d865e352afc8cda1943425c5 /activemodel
parent703128dbfee9b8fca281b5accc22b2b4a37ce4df (diff)
parentb2999d631fb6b61c62b975e4cfe86727b42c1a70 (diff)
downloadrails-e57d8d090d5d6860e3a5bb3257d6aed5b644ea25.tar.gz
rails-e57d8d090d5d6860e3a5bb3257d6aed5b644ea25.tar.bz2
rails-e57d8d090d5d6860e3a5bb3257d6aed5b644ea25.zip
Merge pull request #29447 from shotat/feature/enhance_active_model
[ActiveModel] Improve the performance of mass assignments
Diffstat (limited to 'activemodel')
-rw-r--r--activemodel/lib/active_model/attribute_assignment.rb7
1 files changed, 5 insertions, 2 deletions
diff --git a/activemodel/lib/active_model/attribute_assignment.rb b/activemodel/lib/active_model/attribute_assignment.rb
index 930e89d611..aa931119ff 100644
--- a/activemodel/lib/active_model/attribute_assignment.rb
+++ b/activemodel/lib/active_model/attribute_assignment.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require "active_support/core_ext/hash/keys"
module ActiveModel
@@ -42,8 +44,9 @@ module ActiveModel
end
def _assign_attribute(k, v)
- if respond_to?("#{k}=")
- public_send("#{k}=", v)
+ setter = :"#{k}="
+ if respond_to?(setter)
+ public_send(setter, v)
else
raise UnknownAttributeError.new(self, k)
end