ash-project/ash

Many to many and on match destroy in `manage_relationship`

Geschlossen

#859 geöffnet am 30.01.2024

 (2 Kommentare) (1 Reaktion) (0 zugewiesene Personen)Elixir (389 Forks)batch import
buggood first issue

Repository-Metriken

Stars
 (2.412 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 6T 6h) (26 gemergte PRs in 30 T)

Beschreibung

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.

Contributor Guide