Size: a a a

2020 October 13

Z

Z in pro.elixir
Ihor Katkov
Добавь валидацию на входе в контроллер. Посмотри либу params
Хорошо, гляну
источник

AD

Anastasiya Dyachenko in pro.elixir
Z
Вот я и планирую менять валидацию
а как выглядит валидация? стандартные методы если правильно помню учитывают что поле может быть пустым и считают это валидным
источник

Z

Z in pro.elixir
Anastasiya Dyachenko
а как выглядит валидация? стандартные методы если правильно помню учитывают что поле может быть пустым и считают это валидным
У меня есть поле body, которое может быть пустым  и ассоциация attachs, которая может быть или пустым массивом, или массивом с аттачами.

Мне надо, чтобы валидация добавляла ошибку, если и attachs == [], и body == ""
источник

Z

Z in pro.elixir
но на сервер данные приходят иногда без body в параметрах
источник

Z

Z in pro.elixir
в идеале я бы это решил двумя строчками кода
источник

IK

Ihor Katkov in pro.elixir
Первое, тебе нужно отсекать еще на входе в контроллер не валидные реквесты. Второе, для таких кейсов пиши свою валидационную функцию
источник

IK

Ihor Katkov in pro.elixir
источник

AD

Anastasiya Dyachenko in pro.elixir
Z
У меня есть поле body, которое может быть пустым  и ассоциация attachs, которая может быть или пустым массивом, или массивом с аттачами.

Мне надо, чтобы валидация добавляла ошибку, если и attachs == [], и body == ""
в методе cast есть подходящая настройка, empty_values: ["", []], тогда такие значения будут считаться пустыми и будет срабатывать ошибка в validate_required
источник

AD

Anastasiya Dyachenko in pro.elixir
источник

Z

Z in pro.elixir
Ihor Katkov
Первое, тебе нужно отсекать еще на входе в контроллер не валидные реквесты. Второе, для таких кейсов пиши свою валидационную функцию
Вот я пытался написать, но нашел что там только на одно поле можно
источник

Z

Z in pro.elixir
Anastasiya Dyachenko
в методе cast есть подходящая настройка, empty_values: ["", []], тогда такие значения будут считаться пустыми и будет срабатывать ошибка в validate_required
Минут 15 назад пытался её как-то применить, так и не понял, как сделать чтобы она работала
источник

AD

Anastasiya Dyachenko in pro.elixir
а, нужно чтобы оба одновременно не были пустыми?
источник

Z

Z in pro.elixir
не, надо чтобы хотя бы одно существовало
источник

AD

Anastasiya Dyachenko in pro.elixir
тогда свою проверку, у меня есть такая
def validate_required_one_of(changeset, fields) do
   if Enum.any?(fields, & not is_nil(get_field(changeset, &1))) do
     changeset
   else
     # Add the error to the first field only since Ecto requires a field name for each error.
     add_error(
       changeset,
       hd(fields),
       "One of these fields must be present: #{inspect fields}"
     )
   end
 end

validate_required_one_of(changeset, [:body, :attachs])
источник

AD

Anastasiya Dyachenko in pro.elixir
ну и empty_values  в cast
источник

Z

Z in pro.elixir
спасибо, попробую
источник

DP

Dmitry Ponyatov in pro.elixir
Sergei Zobov
Ребят, може кто-нибудь натыкался на сорцы прошивки их полётника?
А то я нашёл реп, но кажется, что исходники толи не открыли, толи я не там ищу:
https://github.com/Feuerlabs
там вроде HardRT нужен?
или рассматриваете вариант кодогенерации на Эликсире (-> C / LLVM) ?
источник

LL

Lama Lover in pro.elixir
Dmitry Ponyatov
там вроде HardRT нужен?
или рассматриваете вариант кодогенерации на Эликсире (-> C / LLVM) ?
Зачем хард риалтайм в квадрокоптерах?
источник

LL

Lama Lover in pro.elixir
Dmitry Ponyatov
там вроде HardRT нужен?
или рассматриваете вариант кодогенерации на Эликсире (-> C / LLVM) ?
И никто не пользуется эликсиром для генерации нативного кода
Если тебе такое интересно, есть очень классный проект на lua, который называется terra
источник

M

MrFlorius in pro.elixir
Есть ли либа для работы с деньгами? Или тупо в децималах хранить
источник