Validate_inclusion with dynamic enum

I dont think the enum has to be static. I think you can pass any valid enumerable.

So something like that should work:

  def changeset(changeset) do
    changeset
    |> cast(...)
    |> validate_required(...)
    |> validate_parts()
  end

  defp validate_parts(changeset) do
    pack = fetch_field!(changeset, :pack)
    
    changeset
    |> validate_inclusion(:body, Packs.parts_for(pack, :body))
    |> validate_inclusion(:pants, Packs.parts_for(pack, :pants))
  end
1 Like