elixir – 在Phoenix Framework表单中,如何使用changeset将belongs_to关系设置为null?

elixir – 在Phoenix Framework表单中,如何使用changeset将belongs_to关系设置为null?,第1张

概述在Phoenix Framework表单中,我的页面上有一个选择框,可以选择将belongs_to值设置为nil. <%= select f, :relation_id, Enum.into(Enum.map(@relations, fn p -> {p.name, p.id} end), [{"None", nil}]) %> 表单通常会发送ID,但是当选择nil值时,它会将值作为空 在Phoenix Framework表单中,我的页面上有一个选择框,可以选择将belongs_to值设置为nil.

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

表单通常会发送ID,但是当选择nil值时,它会将值作为空字符串传递:

"relation_ID" => ""

我从Ecto收到一个错误,即更改集无效,因为它需要一个整数.我可以拦截地图,将值设置为null,并将更新的地图传递给变更集.但有更简单的方法吗?

解决方法 我认为你应该使用插头 scrub params.

尝试添加到您的控制器:

defmodule MyApp.someThingController do  use MyApp.Web,:controller  plug :scrub_params,"some_thing" when action in [:create,:update]  # def ....end

它将“”(空)值转换为nil值.

希望能帮助到你.

总结

以上是内存溢出为你收集整理的elixir – 在Phoenix Framework表单中,如何使用changeset将belongs_to关系设置为null?全部内容,希望文章能够帮你解决elixir – 在Phoenix Framework表单中,如何使用changeset将belongs_to关系设置为null?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1078237.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存