README.md

# Phoenix MTM Helpers

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`.

## Installation

Add phoenix_mtm to your list of dependencies in `mix.exs`:

      def deps do
        [{:phoenix_mtm, "~> 0.1.0"}]
      end

## Usage

1. Ensure your schema is setup with a `many_to_many` association. You will likely
   need to ensure the `on_delete` and `on_replace` keys are present. See the example
   in the docs for `Phoenix.MTM.Changeset.cast_collection`.

2. Inside your changeset function, pipe your changeset through `Phoenix.MTM.Changeset.cast_collection`,
   providing the association name, repo module, ans association module.

3. Inside your template, call `Phoenix.MTM.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` and `input_opts` keys.

## TODO

- It would be nice to not have to get! each relationship we want to associate.