我目前有一个如下的params实例:
params: %{
"continent" => %{
"deleted_date" => nil,
"name" => "Asia",
"to_be_deleted" => true
},
"id" => "16"
},
我正在尝试对to_be_deleted
键进行模式匹配,以便如果为true,则将运行update/2
的其他版本,同时还将continents
的内容分配给{{ 1}}
我当前的continent_params
:
update/2
我尝试模式匹配其他版本:
def update(conn, %{"id" => id, "continent" => continent_params}) do
# stuff
end
但是,这会产生关于 def update(conn, %{"id" => id, %{"to_be_deleted" = true} => continent_params}) do
#stuff
end
的语法警告,我无法清除。我不确定是否要在函数头中做太多事情,还是应该使用其他语法访问“地图中的地图”。
答案 0 :(得分:4)
尝试一下:
def update(conn, %{"id" => id, "continent" => %{"to_be_deleted" = true} = continent_params}) do
#stuff ^
end
您忘记了按"continent"
键进行图案匹配。