aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/collection_association.rb
diff options
context:
space:
mode:
authorGaurish Sharma <contact@gaurishsharma.com>2017-07-23 23:02:27 +0530
committerGaurish Sharma <contact@gaurishsharma.com>2017-07-29 19:40:31 +0530
commit702e36e2f303aa5864209d43c25f1b9008ae976e (patch)
treeba3ca75421cc8956ccd40d70646a4c84021377d1 /activerecord/lib/active_record/associations/collection_association.rb
parent904f1a8747958129124d86b44e36c5f0263e0125 (diff)
downloadrails-702e36e2f303aa5864209d43c25f1b9008ae976e.tar.gz
rails-702e36e2f303aa5864209d43c25f1b9008ae976e.tar.bz2
rails-702e36e2f303aa5864209d43c25f1b9008ae976e.zip
Return Not found Ids in ActiveRecord::NotFound
This builds on top of 15e2da656f41af0124f7577858536f3b65462ad5. now it also returns exact Ids which were not found which will be debugging simple.
Diffstat (limited to 'activerecord/lib/active_record/associations/collection_association.rb')
-rw-r--r--activerecord/lib/active_record/associations/collection_association.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/collection_association.rb b/activerecord/lib/active_record/associations/collection_association.rb
index ed2e6d1ae4..1a6984877b 100644
--- a/activerecord/lib/active_record/associations/collection_association.rb
+++ b/activerecord/lib/active_record/associations/collection_association.rb
@@ -59,7 +59,9 @@ module ActiveRecord
r.send(reflection.association_primary_key)
end.values_at(*ids).compact
if records.size != ids.size
- klass.all.raise_record_not_found_exception!(ids, records.size, ids.size, reflection.association_primary_key)
+ found_ids = records.map { |record| record.send(reflection.association_primary_key) }
+ not_found_ids = ids - found_ids
+ klass.all.raise_record_not_found_exception!(ids, records.size, ids.size, reflection.association_primary_key, not_found_ids)
else
replace(records)
end