aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Nikitochkin <paul.nikitochkin@gmail.com>2013-10-12 16:39:09 +0300
committerPaul Nikitochkin <paul.nikitochkin@gmail.com>2013-10-13 21:56:44 +0300
commit625cd69a8b74a49fe2831983e89536f872c5abe7 (patch)
tree83fad411a1b8caeb3a66d4644445678c28712e73
parent365110196afcf952bc22729d4467d579b708328f (diff)
downloadrails-625cd69a8b74a49fe2831983e89536f872c5abe7.tar.gz
rails-625cd69a8b74a49fe2831983e89536f872c5abe7.tar.bz2
rails-625cd69a8b74a49fe2831983e89536f872c5abe7.zip
Make missed association exception message more informative
Add target class name, which should have missed association on preload, into exception message to simplify detecting problem part.
-rw-r--r--activerecord/CHANGELOG.md6
-rw-r--r--activerecord/lib/active_record/associations/preloader.rb6
2 files changed, 9 insertions, 3 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index 83c94caa53..661f3aed07 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,3 +1,9 @@
+* For missed association exception message
+ which is raised in `ActiveRecord::Associations::Preloader` class
+ added owner record class name in order to simplify to find problem code.
+
+ *Paul Nikitochkin*
+
* `has_and_belongs_to_many` is now transparently implemented in terms of
`has_many :through`. Behavior should remain the same, if not, it is a bug.
diff --git a/activerecord/lib/active_record/associations/preloader.rb b/activerecord/lib/active_record/associations/preloader.rb
index 713ff80d47..2393667ac8 100644
--- a/activerecord/lib/active_record/associations/preloader.rb
+++ b/activerecord/lib/active_record/associations/preloader.rb
@@ -153,13 +153,13 @@ module ActiveRecord
records.group_by do |record|
reflection = record.class.reflect_on_association(association)
- reflection || raise_config_error(association)
+ reflection || raise_config_error(record, association)
end
end
- def raise_config_error(association)
+ def raise_config_error(record, association)
raise ActiveRecord::ConfigurationError,
- "Association named '#{association}' was not found; " \
+ "Association named '#{association}' was not found on #{record.class.name}; " \
"perhaps you misspelled it?"
end