我有一个ecto模型
defmodule App.Profile do
use App.Web, :model
alias App.Repo
schema "profiles" do
belongs_to :user, App.User
field :name, :string
field :last_name, :string
field :second_surname, :string
timestamps
end
但有时我想保存到数据库并将用户设置为nil,需要我在用户字段中添加一些标志吗?
我的控制器中有这段代码
changeset = Profile.changeset(%Profile{user_id: nil}, profile_params)
但是当我试图保存时我得到了这个错误
:erlang.byte_size({:user_id, "can't be blank"})
在数据库中插入null的最佳方法是什么?
我正在使用postgres,当手动插入我的数据时,我可以在user_id字段中插入null。
答案 0 :(得分:2)
没关系,我只是从必填字段中删除了user_id并添加到了可选字段
@required_fields ~w(name last_name)
@optional_fields ~w(second_surname user_id)