Hi,
I am trying to use Ecto.Enum as following:
schema "demographics" do
field :gender, Ecto.Enum,
values: [
male: "Male",
female: "Female",
other: "Other",
prefer_not_to_say: "Prefer not to say"
]
field :year_of_birth, :integer
timestamps(type: :utc_datetime)
end
# function to get all the gender options - will be used with select input component
def get_gender_options() do
Ecto.Enum.dump_values(__MODULE__, :gender)
end
It is working fine; it is saving in DB as string (e.g. “Prefer not to say”). Issue occurs when i fetch the db record and display on LiveView. It displays gender as: prefer_not_to_say
How i can get LV to display “Prefer not to say”.
One way i can think of is:
schema "demographics" do
field :gender, Ecto.Enum,
values: [
:Male,
:Female,
:Other,
:"Prefer not to say"
]
field :year_of_birth, :integer
timestamps(type: :utc_datetime)
end
Is there any other way?


















