lib/rom/sql/plugin/associates.rb in rom-sql-1.2.2 vs lib/rom/sql/plugin/associates.rb in rom-sql-1.3.0
- old
+ new
@@ -140,28 +140,24 @@
tuple.merge(fk => parent.fetch(pk))
}
when Association::ManyToMany
result_type = tuples.is_a?(Array) ? :many : :one
- join_tuples = assoc.associate(__registry__, tuples, parent)
- join_relation = assoc.join_relation(__registry__)
- join_relation.multi_insert(join_tuples)
+ assoc.persist(__registry__, tuples, parent)
- pk, fk = __registry__[assoc.target]
- .associations[assoc.source]
- .combine_keys(__registry__).to_a.flatten
+ pk, fk = assoc.parent_combine_keys(__registry__)
case parent
when Array
parent.map do |p|
- tuples.map { |tuple| tuple.merge(fk => p[pk]) }
+ tuples.map { |tuple| Hash(tuple).merge(fk => p[pk]) }
end.flatten(1)
else
tuples.map { |tuple| Hash(tuple).update(fk => parent[pk]) }
end
when Association
with_input_tuples(tuples).map { |tuple|
- assoc.associate(relation.__registry__, tuple, parent)
+ assoc.associate(__registry__, tuple, parent)
}
end
result_type == :one ? output_tuples[0] : output_tuples
end