我正在用ecto做phoenix框架。
我写了以下代码。
query = from m in Member,
where: m.member_id == ^member_id,
preload: [:assoc1, :assoc2, :assoc3]
Repo.all(query)当所有预加载的assocs在DB中都有相关的值时,它就会工作。
但是,当预加载的assocs没有相关值时,它会返回null。它会导致phoenix JSON视图中出现错误function nil.assoc3/0 is undefined。
我想展示一下JSON。例如,当assoc3值为零时,我很高兴能跟随JSON。
[{"member_id":1, "assoc1":"xxx", "assoc2":"yyy", "assoc3":""}]请给我一些建议,如何管理没有相关的nil值。
发布于 2020-02-01 15:13:54
这个问题似乎不是nil的assoc3造成的。根据错误消息,视图尝试调用nil.assoc3,这意味着数据库在初始查询中没有返回任何结果(读取: no Member。)
您应该验证来自数据库的响应,并为成功返回的Member与nil呈现不同的页面。
https://stackoverflow.com/questions/60013392
复制相似问题