diff options
author | Paul Nikitochkin <paul.nikitochkin@gmail.com> | 2013-10-12 16:39:09 +0300 |
---|---|---|
committer | Paul Nikitochkin <paul.nikitochkin@gmail.com> | 2013-10-13 21:56:44 +0300 |
commit | 625cd69a8b74a49fe2831983e89536f872c5abe7 (patch) | |
tree | 83fad411a1b8caeb3a66d4644445678c28712e73 | |
parent | 365110196afcf952bc22729d4467d579b708328f (diff) | |
download | rails-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.md | 6 | ||||
-rw-r--r-- | activerecord/lib/active_record/associations/preloader.rb | 6 |
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 |