aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/associations/association_collection.rb5
-rw-r--r--activerecord/lib/active_record/associations/has_many_through_association.rb2
2 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/association_collection.rb b/activerecord/lib/active_record/associations/association_collection.rb
index d8b988d889..3b8954e435 100644
--- a/activerecord/lib/active_record/associations/association_collection.rb
+++ b/activerecord/lib/active_record/associations/association_collection.rb
@@ -159,6 +159,11 @@ module ActiveRecord
end
end
+ def include?(record)
+ return false unless record.is_a?(@reflection.klass)
+ return @target.include?(record) if loaded?
+ exists?(record)
+ end
protected
def method_missing(method, *args)
diff --git a/activerecord/lib/active_record/associations/has_many_through_association.rb b/activerecord/lib/active_record/associations/has_many_through_association.rb
index 83c9865205..7d418ba701 100644
--- a/activerecord/lib/active_record/associations/has_many_through_association.rb
+++ b/activerecord/lib/active_record/associations/has_many_through_association.rb
@@ -1,6 +1,6 @@
module ActiveRecord
module Associations
- class HasManyThroughAssociation < AssociationProxy #:nodoc:
+ class HasManyThroughAssociation < AssociationCollection #:nodoc:
def initialize(owner, reflection)
super
reflection.check_validity!