aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/internal_metadata.rb
diff options
context:
space:
mode:
authoryuuji.yaginuma <yuuji.yaginuma@gmail.com>2016-04-25 19:35:16 +0900
committeryuuji.yaginuma <yuuji.yaginuma@gmail.com>2016-04-27 10:33:27 +0900
commitcfa1df4b07bee5b2bbcbf9edd2ac287b4fb23c18 (patch)
treef58b7ffdccf997a767241119deb2a177f33cd5d3 /activerecord/lib/active_record/internal_metadata.rb
parente007afd3cd7255c752fe8ab7fa24b59526ab95cb (diff)
downloadrails-cfa1df4b07bee5b2bbcbf9edd2ac287b4fb23c18.tar.gz
rails-cfa1df4b07bee5b2bbcbf9edd2ac287b4fb23c18.tar.bz2
rails-cfa1df4b07bee5b2bbcbf9edd2ac287b4fb23c18.zip
update record specified in key
`#first_or_initialize` does not use attributes to data acquisition. Therefore, there is a possibility of updating the different record than the one specified in the key, I think this is not expected behavior.
Diffstat (limited to 'activerecord/lib/active_record/internal_metadata.rb')
-rw-r--r--activerecord/lib/active_record/internal_metadata.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/internal_metadata.rb b/activerecord/lib/active_record/internal_metadata.rb
index 81db96bffd..17a5dc1d1b 100644
--- a/activerecord/lib/active_record/internal_metadata.rb
+++ b/activerecord/lib/active_record/internal_metadata.rb
@@ -19,7 +19,7 @@ module ActiveRecord
end
def []=(key, value)
- first_or_initialize(key: key).update_attributes!(value: value)
+ find_or_initialize_by(key: key).update_attributes!(value: value)
end
def [](key)