Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 如何在Ecto迁移中为十进制列设置默认值?_Elixir_Phoenix Framework_Ecto - Fatal编程技术网

Elixir 如何在Ecto迁移中为十进制列设置默认值?

Elixir 如何在Ecto迁移中为十进制列设置默认值?,elixir,phoenix-framework,ecto,Elixir,Phoenix Framework,Ecto,我试着做了以下几点: add :balance, :decimal, default: 0.0 add :balance, :decimal, default: "0.0" add :balance, :decimal, default: Decimal.new("0.0") 前2个根本不起作用,因为如果我没有显式传递值,新创建的记录仍然返回nil 第三个返回此错误: **(ArgumentError)类型:Decimal的未知默认值#Decimal:默认值可以是字符串、数字、布尔值和 字符串

我试着做了以下几点:

add :balance, :decimal, default: 0.0
add :balance, :decimal, default: "0.0"
add :balance, :decimal, default: Decimal.new("0.0")
前2个根本不起作用,因为如果我没有显式传递值,新创建的记录仍然返回
nil

第三个返回此错误:

**(ArgumentError)类型
:Decimal
的未知默认值
#Decimal
:默认值可以是字符串、数字、布尔值和 字符串、整数列表、映射(当类型为map时)或片段(…)

我现在能想到的唯一解决办法是使用:


但是,我更喜欢在迁移本身上这样做。我该怎么做?

我问了同样的问题,关于长生不老药松弛,我被告知第一个应该有效

我又检查了一遍,第一个没问题。只是
Repo.insert()
将列返回为
nil
,但如果我再次检索记录,它将显示为
#Decimal
,这意味着默认值不起作用

def changeset(account, attrs) do
  account
  |> put_change(:balance, Decimal.new("0.0"))
end