<%= 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?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)