method
build
v3.0.9 -
Show latest stable
-
0 notes -
Class: ActiveRecord::Associations::ClassMethods::JoinDependency
build(associations, parent = nil, join_type = Arel::InnerJoin)
protected
Hide source
# File activerecord/lib/active_record/associations.rb, line 1939 def build(associations, parent = nil, join_type = Arel::InnerJoin) parent ||= @joins.last case associations when Symbol, String reflection = parent.reflections[associations.to_s.intern] or raise ConfigurationError, "Association named '#{ associations }' was not found; perhaps you misspelled it?" unless join_association = find_join_association(reflection, parent) @reflections << reflection join_association = build_join_association(reflection, parent) join_association.join_type = join_type @joins << join_association cache_joined_association(join_association) end join_association when Array associations.each do |association| build(association, parent, join_type) end when Hash associations.keys.sort{|a,b|a.to_s<=>b.to_s}.each do |name| join_association = build(name, parent, join_type) build(associations[name], join_association, join_type) end else raise ConfigurationError, associations.inspect end end