将null插入ecto belongs_to字段

时间:2015-11-18 01:41:36

标签: elixir phoenix-framework ecto

我有一个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。

1 个答案:

答案 0 :(得分:2)

没关系,我只是从必填字段中删除了user_id并添加到了可选字段

@required_fields ~w(name last_name)
@optional_fields ~w(second_surname user_id)