method
build_scope
v4.1.8 -
Show latest stable
- Class:
ActiveRecord::Associations::Preloader::Association
build_scope()private
No documentation available.
# File activerecord/lib/active_record/associations/preloader/association.rb, line 133
def build_scope
scope = klass.unscoped
values = reflection_scope.values
preload_values = preload_scope.values
scope.where_values = Array(values[:where]) + Array(preload_values[:where])
scope.references_values = Array(values[:references]) + Array(preload_values[:references])
scope._select! preload_values[:select] || values[:select] || table[Arel.star]
scope.includes! preload_values[:includes] || values[:includes]
if preload_values.key? :order
scope.order! preload_values[:order]
else
if values.key? :order
scope.order! values[:order]
end
end
if options[:as]
scope.where!(klass.table_name => { reflection.type => model.base_class.sti_name })
end
klass.default_scoped.merge(scope)
end