method
construct
v3.0.9 -
Show latest stable
- Class:
ActiveRecord::Associations::ClassMethods::JoinDependency
construct(parent, associations, joins, row)protected
No documentation available.
# File activerecord/lib/active_record/associations.rb, line 1986
def construct(parent, associations, joins, row)
case associations
when Symbol, String
join = joins.detect{|j| j.reflection.name.to_s == associations.to_s && j.parent_table_name == parent.class.table_name }
raise(ConfigurationError, "No such association") if join.nil?
joins.delete(join)
construct_association(parent, join, row)
when Array
associations.each do |association|
construct(parent, association, joins, row)
end
when Hash
associations.keys.sort{|a,b|a.to_s<=>b.to_s}.each do |name|
join = joins.detect{|j| j.reflection.name.to_s == name.to_s && j.parent_table_name == parent.class.table_name }
raise(ConfigurationError, "No such association") if join.nil?
association = construct_association(parent, join, row)
joins.delete(join)
construct(association, associations[name], joins, row) if association
end
else
raise ConfigurationError, associations.inspect
end
end