Как я могу изменить свою проверку данных в Phoenix / Elixir?

Состав состоит из того, что что-то состоит из отдельных частей и имеет прочные отношения с этими частями. Если основная часть умирает, так и другие, у них не может быть собственной жизни. Грубым примером является человеческое тело. Выньте сердце, и все остальные части отмирают.

Наследование - это то, где вы просто берете то, что уже существует и использует его. Нет сильных отношений. Человек мог наследовать свое отцовское имение, но он может обойтись без него.

Я не знаю Java, поэтому я не могу представить пример, но я могу дать объяснение понятий.

3
задан vmaroli 23 January 2019 в 05:58
поделиться

2 ответа

Если поле не требуется, вы должны удалить его из validate_required .

Таким образом, ваша функция изменения должна стать

def changeset(%User{} = user, attrs) do
  user
  |> cast(attrs, [:email, :cpf, :name, :phone_number, :password])
  |> validate_required([:email, :password])
  |> validate_format(:email, ~r/^[A-Za-z0-9._%+-+']+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/)
  |> validate_format(:cpf, ~r/([0-9]{2}[\.]?[0-9]{3}[\.]?[0-9]{3}[\/]?[0-9]{4}[-]?[0-9]{2})|([0-9]{3}[\.]?[0-9]{3}[\.]?[0-9]{3}[-]?[0-9]{2})/)
  |> validate_cpf(:cpf)
  |> unique_constraint(:email)
  |> unique_constraint(:cpf)
  |> unique_constraint(:phone_number)
  |> update_password_hash()
  |> update_activation_code()
end
0
ответ дан Gabriel Prá 23 January 2019 в 05:58
поделиться

Все, что вам нужно сделать, это изменить вызов на метод validate_required, чтобы удалить поля, которые вы хотите сделать необязательными:

|> validate_required([:email, :password])

Если вы хотите узнать больше о том, что делают эти вызовы функций, Вы можете прочитать руководство по фениксной структуре об Ecto (в частности, раздел Changesets and Validations ).

0
ответ дан stringlytyped 23 January 2019 в 05:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: