У меня нет опыта разработки, и это не мой родной язык, извините за все.
Я работаю в мобильном приложении с серверной частью в Elixir / Phoenix, когда человек хочет создать новую учетную запись, система требует 5 сведений для создания новой учетной записи (электронная почта, cpf, имя, номер_файла, пароль) ,
в моем новом процессе регистрации я хочу запросить только 2 данные (электронная почта и пароль), и позже, используя приложение, пользователь сможет заполнить недостающие данные, поэтому моя система должна иметь возможность создать учетную запись с нулевыми данными.
Сначала я зашел в свою базу данных структуры, чтобы проверить, не допускает ли она нулевых данных, как вы можете видеть ниже, что этого не происходит:
CREATE TABLE users (
id bigint NOT NULL,
email character varying(255),
cpf character varying(255),
phone_number character varying(255),
password character varying(255),
inserted_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL,
name character varying(255)
);
поэтому я пошел, чтобы проверить мой файл user.ex, чтобы убедиться, что функция, которая выполняет проверку данных, не позволяет им быть нулевыми, и я нашел это:
def changeset(%User{} = user, attrs) do
user
|> cast(attrs, [:email, :cpf, :name, :phone_number, :password])
|> validate_required([:email, :cpf, :name, :phone_number, :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
Я считаю, что мне нужно изменить эту функцию, чтобы система могла создать учетную запись без всех этих данных, и после создания учетной записи пользователь может заполнить свои данные из приложения, но я не уверен, как мне это сделать. это, кто-нибудь может мне помочь?