Как я могу выполнить условную проверку для логики ИЛИ, где мы проверяем, присутствует ли 1 из 2 значений или оба значения присутствуют.Требуется условная проверка в Ecto для OR - 1 из 2 полей
Так, например, если я хочу, чтобы проверить, чтобы убедиться, что email
или в mobile
поля заполнены ... Я хочу, чтобы иметь возможность передать список в fields
из validate_required_inclusion
, чтобы подтвердить, что по крайней мере 1 из поля в списке не равны нулю.
def changeset(struct, params \\ %{}) do
struct
|> cast(params, [:email, :first_name, :last_name, :password_hash, :role, :birthdate, :address1, :address2, :city, :state, :zip, :status, :mobile, :card, :sms_code, :status])
|> validate_required_inclusion([:email , :mobile])
end
def validate_required_inclusion(changeset, fields, options \\ []) do
end
Как я могу сделать это условно или валидацию?
Мне нравится, как это было короче другой, хотя он не работает с удалением его в ... Мне придется поиграть с этим. Спасибо! – DogEatDog
Это не сработает, если поле уже находится в модели, а не в изменениях, например. 'Post.changeset (% Post {content:" foo "},% {})' будет терпеть неудачу, потому что 'changes' пуст, даже если присутствует' content'. – Dogbert
Спасибо @Dogbert, хорошо поймать. Я обновил ответ, хотя он по-прежнему не проверяет наличие пустых полей, как это делает ваш. – kmptkp