method
construct
v5.1.7 -
Show latest stable
-
0 notes -
Class: JoinDependency
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0 (0)
- 3.2.1 (0)
- 3.2.8 (0)
- 3.2.13 (0)
- 4.0.2 (0)
- 4.1.8 (0)
- 4.2.1 (0)
- 4.2.7 (0)
- 4.2.9 (0)
- 5.0.0.1 (0)
- 5.1.7 (0)
- 5.2.3 (0)
- 6.0.0 (0)
- 6.1.3.1 (0)
- 6.1.7.7 (0)
- 7.0.0 (0)
- 7.1.3.2 (0)
- 7.1.3.4 (0)
- What's this?
construct(ar_parent, parent, row, rs, seen, model_cache, aliases)
private
Hide source
# File activerecord/lib/active_record/associations/join_dependency.rb, line 251 def construct(ar_parent, parent, row, rs, seen, model_cache, aliases) return if ar_parent.nil? parent.children.each do |node| if node.reflection.collection? other = ar_parent.association(node.reflection.name) other.loaded! elsif ar_parent.association_cached?(node.reflection.name) model = ar_parent.association(node.reflection.name).target construct(model, node, row, rs, seen, model_cache, aliases) next end key = aliases.column_alias(node, node.primary_key) id = row[key] if id.nil? nil_association = ar_parent.association(node.reflection.name) nil_association.loaded! next end model = seen[ar_parent.object_id][node.base_klass][id] if model construct(model, node, row, rs, seen, model_cache, aliases) else model = construct_model(ar_parent, node, row, model_cache, id, aliases) if node.reflection.scope_for(node.base_klass).readonly_value model.readonly! end seen[ar_parent.object_id][node.base_klass][id] = model construct(model, node, row, rs, seen, model_cache, aliases) end end end