Phoenix和功能签名的部分更新

时间:2017-04-07 03:33:48

标签: elixir phoenix-framework

我想通过ajax / json创建一个部分更新方法。我的“更新”功能应该如何?

def update(conn, %{"a" => a, "b" => b, "c" => c} = params) do
    # ....
end

即,一次只需要其中一个参数。我该如何指定?或者应该这样做:

def update(conn, params) do
    # ....
end

检查params是否包含abc

1 个答案:

答案 0 :(得分:2)

您可以使用模式匹配来定义所有可能性:

def update(conn, %{"a" => a} = params) do
  # Do something when you have "a"
end

def update(conn, %{"b" => b} = params) do
  # Do something when you have "b"
end

def update(conn, %{"c" => c} = params) do
  # Do something when you have "c"
end

def update(conn, params) do
  # Handle everything else
end