diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2017-06-15 18:12:29 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-15 18:12:29 -0400 |
commit | e57d8d090d5d6860e3a5bb3257d6aed5b644ea25 (patch) | |
tree | 8d5c8f4e35e69c64d865e352afc8cda1943425c5 /activemodel/lib | |
parent | 703128dbfee9b8fca281b5accc22b2b4a37ce4df (diff) | |
parent | b2999d631fb6b61c62b975e4cfe86727b42c1a70 (diff) | |
download | rails-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/lib')
-rw-r--r-- | activemodel/lib/active_model/attribute_assignment.rb | 7 |
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 |