8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/better_record/concerns/active_record_extensions/reflection_extensions.rb', line 8
def join_scope(table, foreign_klass)
predicate_builder = predicate_builder(table)
scope_chain_items = join_scopes(table, predicate_builder)
klass_scope = klass_join_scope(table, predicate_builder)
if type
if options[:strict_primary_type]
klass_scope.where!(type => BetterRecord::PolymorphicOverride.polymorphic_value(foreign_klass, options))
else
klass_scope.where!(type => BetterRecord::PolymorphicOverride.all_types(foreign_klass))
end
end
scope_chain_items.inject(klass_scope, &:merge!)
end
|