ash-project/ash

Many to many and on match destroy in `manage_relationship`

Fermée

#859 ouverte le 30 janv. 2024

 (2 commentaires) (1 réaction) (0 personne assignée)Elixir (389 forks)batch import
buggood first issue

Métriques du dépôt

Stars
 (2 412 étoiles)
Métriques de merge PR
 (Merge moyen 6j 6h) (26 PRs mergées en 30 j)

Description

I think on_match: :destroy in manage_relationship is incorrect for many_to_many.

Right now it destroys a join resource. Instead it should destroy both a join and a destination like other types of relationships do.

If one wants to destroy only a join resource then they should use :unrelate.

Destroy is implemented correctly for on_missing where :destroy destroys both and :unrelate only join one. (Though there is a mistake in documentation that states that it is possible to pass [:join, :keys] with a long form.) That's the only other case with support for :destroy so it is strange that they are inconsistent.

Guide contributeur