diff options
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/base.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 8c8717b759..9746efc7d1 100644 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -450,12 +450,12 @@ module ActiveRecord #:nodoc: private def relation #:nodoc: - relation ||= Relation.new(self, arel_table) + @relation ||= Relation.new(self, arel_table) if finder_needs_type_condition? - relation.where(type_condition).create_with(inheritance_column.to_sym => sti_name) + @relation.where(type_condition).create_with(inheritance_column.to_sym => sti_name) else - relation + @relation end end end @@ -489,6 +489,7 @@ module ActiveRecord #:nodoc: @marked_for_destruction = false @previously_changed = {} @changed_attributes = {} + @relation = nil ensure_proper_type |