If a use Ecto.Changeset.cast_embed
and I call data
field with a string, returns this error:
[data: {"is invalid", [validation: :embed, type: :map]}]
If I call with a list, returns this exceptions:
** (Ecto.CastError) expected params to be a :map, got: `[]`
To solve this problem, is a good solution to define this in the Data
module?
def changeset(data, params) when is_list(params), do: add_error(changeset, :data, "should be a map")
def changeset(data, params) do
# normal changeset ...
end