gpt4 book ai didi

elixir - 在 Phoenix Framework 表单中,如何使用变更集将belongs_to 关系设置回 null?

转载 作者:行者123 更新时间:2023-12-04 19:02:15 25 4
gpt4 key购买 nike

在 Phoenix Framework 表单中,我的页面上有一个选择框,其中有一个选项可以将belongs_to 值设置为 nil。

<%= select f, :relation_id, 
Enum.into(Enum.map(@relations, fn p -> {p.name, p.id} end),
[{"None", nil}]) %>

The form would usually send the ID, but when the nil value is selected, it passes the value as an empty string:
"relation_id" => ""

我从 Ecto 收到一个错误,指出变更集无效,因为它需要一个整数。我可能会拦截 map ,将值设置为 null,然后将更新的 map 传递到变更集。但是有没有更简单的方法来做到这一点?

最佳答案

我觉得你应该用插头scrub params .

尝试添加到您的 Controller :

defmodule MyApp.SomeThingController do
use MyApp.Web, :controller

plug :scrub_params, "some_thing" when action in [:create, :update]

# def ....
end

它将被转换 "" (空)值到 nil值。

希望能帮助到你。

关于elixir - 在 Phoenix Framework 表单中,如何使用变更集将belongs_to 关系设置回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35182566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com