Skip to content

Instantly share code, notes, and snippets.

@imranismail
Created August 16, 2017 02:39
Show Gist options
  • Save imranismail/bcd7915d624600b329e1ebfbfa7b1d29 to your computer and use it in GitHub Desktop.
Save imranismail/bcd7915d624600b329e1ebfbfa7b1d29 to your computer and use it in GitHub Desktop.
defmodule App.ChangesetView do
use App, :view
@doc """
Traverses and translates changeset errors.
See `Ecto.Changeset.traverse_errors/2`
"""
def translate_errors(changeset) do
Ecto.Changeset.traverse_errors(changeset, &translate_error/1)
end
@doc """
Translates a changeset error.
"""
def translate_error({msg, opts}) do
if count = opts[:count] do
Gettext.dngettext(Web.Gettext, "errors", msg, msg, count, opts)
else
Gettext.dgettext(Web.Gettext, "errors", msg, opts)
end
end
def render("error.json", %{changeset: changeset}) do
%{errors: translate_errors(changeset)}
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment