我是新来的elixir凤凰有一些问题访问测试内嵌套元素。我测试控制器,并得到了迄今为止以下回应:访问与elixir中的地图列表中的嵌套元素
.[%{"attributes" => %{"first_name" => "Timmy 96", "last_name" =>
"Assistant"},
"id" => "bca58c53-7c6e-4281-9bc8-0c4616a30051",
"relationships" => %{"avatar" => %{"data" => %{"id" => "011300fd-ca98-42b4-
9561-f1cdc93d2d25",
"type" => "pictures"}}}, "type" => "users"}]
我使用了应答JSON-API格式和我的读取与用户数据属性:
user_attr = Enum.filter(includes, fn(item)->
item["relationships"]["avatar"] != nil
end)
IO.inspect user_attr
case Enum.fetch(user_attr ,0) do
{:ok, value} ->
assert value["attributes"]["first_name"] == user.first_name
assert value["attributes"]["last_name"] == user.last_name
{_} ->
assert false
end
我想缩短这个部分,不想使用案例,但不知道如何在不使用案例中的值部分的情况下获取user_attr的值。
我也想要关系的id - >头像 - >数据 - > ID与我插入之前的ID,但不知道如何访问此值。 id是之前我插入的图片的一部分,所以我想
assert XXX == picture.id
但如何让XXX?
希望有人能帮助我。去年只有Java和C#,从来没有Ruby,现在我得到了不知何故变成灵药:/
谢谢。
谢谢。两个答案都有意义,但我使用了你的解决方案。竖起大拇指:) – Sardoan
@Sardoan,因为您发现解决方案很有帮助,您应该将此答案标记为正确。 – mudasobwa