Get the Values for a Ecto Schema Enum Column
I recently started learning Elixir and had a model with an enum column with the following attributes:
schema "keyboards" do
field :nickname, :string
field :form_factor, Ecto.Enum, values: [:macro, :num, :custom, :split, :forty, :sixty, :sixty_five, :seventy_five, :tkl, :full]
timestamps()
end
In my view, I had a form object where I wanted to have a select input with the values from my enum column, form_factor
. Luckily, the Ecto.Enum
module has a few functions that can help with this - mappings/2
, values/2
, and dump_values/2
.
I ended up using the following in my form:
<%= label f, :form_factor %>
<%= select f, :form_factor, Ecto.Enum.mappings(Keyboard, :form_factor) %>
<%= error_tag f, :form_factor %>
https://hexdocs.pm/ecto/Ecto.Enum.html
Tweet