使用预加载时如何检查未定义的值,并且 return 没有值与 Ecto
How to check undefined value when use preload and return no value with Ecto
我正在用 ecto 做 phoenix 框架。
我写了下面的代码。
query = from m in Member,
where: m.member_id == ^member_id,
preload: [:assoc1, :assoc2, :assoc3]
Repo.all(query)
当所有预加载的 assocs
在数据库中都有相关值时,它就可以工作。
然而,当预加载 assocs
没有相关值时,它 returns null。
它会在 phoenix JSON 视图中导致错误 function nil.assoc3/0 is undefined
。
我想展示JSON。例如,当 assoc3
值为 nil 时,如果我能得到关注 JSON,我很高兴。
[{"member_id":1, "assoc1":"xxx", "assoc2":"yyy", "assoc3":""}]
请给我建议如何管理没有相关的零值。
assoc3
似乎不是 nil
的问题。根据错误消息,视图尝试调用 nil.assoc3
,这意味着数据库没有返回初始查询的结果(阅读:没有 Member
。)
您应该验证来自数据库的响应并为成功返回的 Member
与 nil
呈现不同的页面。
我正在用 ecto 做 phoenix 框架。
我写了下面的代码。
query = from m in Member,
where: m.member_id == ^member_id,
preload: [:assoc1, :assoc2, :assoc3]
Repo.all(query)
当所有预加载的 assocs
在数据库中都有相关值时,它就可以工作。
然而,当预加载 assocs
没有相关值时,它 returns null。
它会在 phoenix JSON 视图中导致错误 function nil.assoc3/0 is undefined
。
我想展示JSON。例如,当 assoc3
值为 nil 时,如果我能得到关注 JSON,我很高兴。
[{"member_id":1, "assoc1":"xxx", "assoc2":"yyy", "assoc3":""}]
请给我建议如何管理没有相关的零值。
assoc3
似乎不是 nil
的问题。根据错误消息,视图尝试调用 nil.assoc3
,这意味着数据库没有返回初始查询的结果(阅读:没有 Member
。)
您应该验证来自数据库的响应并为成功返回的 Member
与 nil
呈现不同的页面。