Cast_assoc with scope as 3rd parameter on changeset function

I thought that if you passed a changeset of q having many parts
with neither q and parts having ids set, this creates everything with ecto in the db,
in particular the id of q is passed to the parts to set the q_id field.

but this does not work with the three params changeset (with scope new param) for some reason

maybe I am missing something.

so instead I used ecto multi to insert q then the parts
at least you explicitly set what’s needed, but again I thought this was not needed to use a transaction