私はエリクシールに新しいです。フェニックスは、テスト内でネストされた要素にアクセスする際にいくつかの問題を抱えています。私はこれを短くしたいエリクシルのマップでリスト内のネストされた要素へのアクセス
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
:私は、コントローラをテストしてい、これまでの応答を以下ました:
.[%{"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の値を取得する方法は考えられません。
私は前に挿入したIDを持つアバター - >データ - > idという関係のIDをアサートしたいが、この値にアクセスする方法は考えていない。 IDは前に挿入した画像の一部ですので
assert XXX == picture.id
XXXを取得するにはどうすればよいですか?
誰かが私を助けることを願っています。去年はJavaとC#だけでRubyは決してできませんでしたが、今は何とかエリクサーになっています:/
ありがとう。
ありがとう:
はテストとパターンマッチングについては、こちらをご覧ください。どちらの答えも理にかなっていますが、私はあなたのソリューションを使いました。 Thumbs up :) – Sardoan
@Sardoanあなたが解決策を見つけたので、この答えを正しいものとしてマークする必要があります。 – mudasobwa