A small collection of functions to make it easier working with many_to_many
Ecto
associations and checkboxes to create them.
If you are familiar with Ruby on Rails, analogous to collection_check_boxes
.
Add phoenix_mtm to your list of dependencies in mix.exs
:
def deps do
[{:phoenix_mtm, "~> 0.4.0"}]
end
-
Ensure your schema is setup with a
many_to_many
association. You will likely need to ensure theon_delete
andon_replace
keys are present. See the example in the docs forPhoenixMTM.Changeset.cast_collection
. -
Inside your changeset function, pipe your changeset through
PhoenixMTM.Changeset.cast_collection
, providing the association name, repo module, ans association module. -
Inside your template, call
PhoenixMTM.Helpers.collection_checkboxes
where you want the output of checkboxes to occur. This function accepts a form, the association name, a keyword list of values, and a list of pre-selected values.You can pass along attributes directly to the generated inputs and labels by passing a keyword list inside both
label_opts
andinput_opts
keys.