ecto_enum
ecto_enum copied to clipboard
use with string-backed storage doesnt work
when i try to use EctoEnum with string-backed storage i've got an error
== Compilation error in file lib/app/notifications/email_delivery_status_enum.ex ==
** (CompileError) lib/app/notifications/email_delivery_status_enum.ex:2: undefined function use/6
(stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
(elixir) lib/kernel/parallel_compiler.ex:229: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/7
my enum
defmodule HexletBasics.Notifications.EmailDeliveryStatusEnum do
use EctoEnum, "sent", "bounce", "spam", "rejected", "unsub"
end
when i used defenum, or keywords e.g, it's ok
defmodule HexletBasics.Notifications.EmailDeliveryStatusEnum do
use EctoEnum, sent: "sent", bounce: "bounce", spam: "spam", rejected: "rejected", unsub: "unsub"
end
I am having this issue too, I can verify that I am passing in strings into my changeset, but after the cast
step it becomes atom.
defenum StatusEnum, ~w(pending_payment cancelled paid refunded pending_collection fulfilled)
def changeset(sales_order, attrs) do
# status is string `"pending_payment"` here
sales_order
|> cast(attrs, [:user_id, :outlet_id, :status, :source])
|> # status is :pending_payment here
|> cast_assoc(:user)