aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authoryui-knk <spiketeika@gmail.com>2016-02-02 20:57:55 +0900
committeryui-knk <spiketeika@gmail.com>2017-08-22 18:51:43 +0900
commit30ef715d40cd49d017524824bfbb92e4bd4ab6a4 (patch)
tree56963d44c52c5624b35b936b0aff1421a9d7157d /activerecord/lib
parent1fe41329c6ffcbb52c9762d28d780e838584e63d (diff)
downloadrails-30ef715d40cd49d017524824bfbb92e4bd4ab6a4.tar.gz
rails-30ef715d40cd49d017524824bfbb92e4bd4ab6a4.tar.bz2
rails-30ef715d40cd49d017524824bfbb92e4bd4ab6a4.zip
Automatically guess the inverse associations for STI
ActiveRecord associations automatically guess the inverse associations. But this feature does not work correctly on assoctions for STI. For example, before this commit ``` class Post < ActiveRecord::Base belongs_to :author end class SpecialPost < Post; end class Author < ActiveRecord::Base has_many :posts has_many :special_posts end ``` `author.posts.first.author` works correctly, but `author.special_posts.first.author` does not work correctly.
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/reflection.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/reflection.rb b/activerecord/lib/active_record/reflection.rb
index b847933b2e..e35049bb41 100644
--- a/activerecord/lib/active_record/reflection.rb
+++ b/activerecord/lib/active_record/reflection.rb
@@ -657,7 +657,7 @@ module ActiveRecord
# from calling +klass+, +reflection+ will already be set to false.
def valid_inverse_reflection?(reflection)
reflection &&
- klass.name == reflection.active_record.name &&
+ klass <= reflection.active_record &&
can_find_inverse_of_automatically?(reflection)
end