Size: a a a

Эликсир и Вунш

2019 February 16

NK

ID:476249930 in Эликсир и Вунш
там в |> идут разные валидации
источник

NK

ID:476249930 in Эликсир и Вунш
|> validate_length(:title, min: 3)
источник

NK

ID:476249930 in Эликсир и Вунш
например эта валидация через магию отдает в форму ошибку
источник

NK

ID:476249930 in Эликсир и Вунш
но как эта магия работает???
источник

NK

ID:476249930 in Эликсир и Вунш
в контроллере про ошибку только это

{:error, changeset} ->
       render(conn, "new.html", changeset: %{changeset | action: :new})
источник

NK

ID:476249930 in Эликсир и Вунш
но тут чанджсет это же введенное в форму
источник

NK

ID:476249930 in Эликсир и Вунш
где про ошибки?
источник

NK

ID:476249930 in Эликсир и Вунш
как вообще формируются значения ошибок валидации и как они передаются в форму?
источник

NK

ID:476249930 in Эликсир и Вунш
они захардкожены в экто?
источник

NK

ID:476249930 in Эликсир и Вунш
источник

NK

ID:476249930 in Эликсир и Вунш
как это переопределить?
источник

NK

ID:476249930 in Эликсир и Вунш
changeset.errors заполняется валидаторами экто
источник

NK

ID:476249930 in Эликсир и Вунш
changeset.errors #=> [age: {"is invalid", []}, name: {"can't be blank", []}]
источник

NK

ID:476249930 in Эликсир и Вунш
типа такого
источник

NK

ID:476249930 in Эликсир и Вунш
как это на русский перевести например?
источник

NK

ID:476249930 in Эликсир и Вунш
не ЖСом же на фронте это делать
источник

NK

ID:476249930 in Эликсир и Вунш
то что эта мапа как раз таки и обрабатыается формой я уже понял))
источник

NK

ID:476249930 in Эликсир и Вунш
но как ее заполнять тем что нужно мне а не захардкожено в экто
источник

NK

ID:476249930 in Эликсир и Вунш
источник

Я

Ярослав in Эликсир и Вунш
ID:476249930
но как ее заполнять тем что нужно мне а не захардкожено в экто
Есть такой подход к переводу ошибок https://www.mitchellhanberg.com/post/2017/10/23/encoding-ecto-validation-errors-in-phoenix/

А вот тут подобнее про общий подход с Gettext https://wunsh.ru/articles/elixir-i18n.html
источник