首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用preload时检查未定义的值,并在Ecto中不返回值

如何在使用preload时检查未定义的值,并在Ecto中不返回值
EN

Stack Overflow用户
提问于 2020-02-01 10:05:09
回答 1查看 132关注 0票数 0

我正在用ecto做phoenix框架。

我写了以下代码。

代码语言:javascript
复制
    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。

代码语言:javascript
复制
[{"member_id":1, "assoc1":"xxx", "assoc2":"yyy", "assoc3":""}]

请给我一些建议,如何管理没有相关的nil值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-01 15:13:54

这个问题似乎不是nilassoc3造成的。根据错误消息,视图尝试调用nil.assoc3,这意味着数据库在初始查询中没有返回任何结果(读取: no Member。)

您应该验证来自数据库的响应,并为成功返回的Membernil呈现不同的页面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60013392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档