For example, we have Faculties and Specialities. Each Faculty has many Specialities.
If we insert Faculties and Specialities using Ecto 2.0 and have nested errors (in Specialities), how can we traverse and return translated errors?
My current code was:
changeset = Faculty.changeset(%Faculty{}, attrs["data"], :specialities, [])
case Repo.insert(changeset) do
{:ok, _model} -> {:reply, :ok, socket}
{:error, changeset} ->
{:reply, {:error, %{errors: translate_errors(changeset)}}, socket}
end
defp translate_errors(changeset) do
Ecto.Changeset.traverse_errors(changeset, &translate_error/1)
end