ash-project/ash

Many to many and on match destroy in `manage_relationship`

Chiusa

#859 aperta il 30 gen 2024

 (2 commenti) (1 reazione) (0 assegnatari)Elixir (389 fork)batch import
buggood first issue

Metriche repository

Star
 (2412 stelle)
Metriche merge PR
 (Merge medio 6g 6h) (26 PR mergiate in 30 g)

Descrizione

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.

Guida contributor