尝试弄清楚,在生成 GQL 模式时, 为什么如果源变量
:float
中存在square_plot
数据(比如50
),
没有错误
但如果它是 NIL,则代码会生成错误
当我使用这样的代码将值转换为sqft时:
可能看起来没有验证通过
代码
field(:square_plot, :float) // my var is `50.0` in DB
field :square_plot_ft, :float do
if square_plot > 0 do
resolve(fn _args, %{source: source} -> {:ok, Float.round(source.square_plot*10.7639, 0)} end)
end
end
如果值 NOT NIL,则 GQL 响应
{
"data": {
"unit": {
"squareTotalFt": 1615.0,
"squareTotal": 150.0,
"squarePlotFt": 538.0,
"squarePlot": 50.0
}
}
}
如果值为 NIL,则 GQL 响应
"Internal server error"
和服务器错误
** (exit) an exception was raised:
** (ArithmeticError) bad argument in arithmetic expression
(platform) lib/units_web/schema/object.ex:228: anonymous fn/2 in UnitsWeb.Schema.Unit.__abs
inthe_type__/1