【问题标题】:How to handle nil parameter, when data inserted in create method在create方法中插入数据时如何处理nil参数
【发布时间】:2021-11-20 04:01:34
【问题描述】:
  • 灵药:1.6
  • 凤凰:1.3

我尝试插入参数,但是当“备忘录”等参数之一为空时。 一般如何处理 nil 参数? 我只是想这样检查一下。

memo = (memo == nil ? "" : memo)

Elixir 中 nil 检查的最佳做法是什么。 如果或案例或其他什么?

在这种情况下,当 _params memo 为 nil 时,它会出现错误代码。

def create(conn, _params) do
  price = _params["price"]
  amount = _params["amount"]
  memo = _params["memo"]
  sales = %{price: price,
               amount: amount,
               memo: memo}
case Casher.create_sales(sales) do
  {:ok, sales} ->
  conn
    |> redirect(to: page_path(conn, :success))
  {:error, %Ecto.Changeset{} = changeset} ->
    render(conn, "error.html")
end

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    确切的交易是:

    memo = if memo == nil, do: "", else: memo
    

    只有当备忘录不能是falsefalse 也会变成"")时才有效的更惯用的方法是:

    memo = memo || ""
    

    【讨论】:

      【解决方案2】:

      上面提到的两个替代方案:

      memo = case memo do
        nil -> ""
        _ -> memo
      end
      
      memo = case is_nil(memo) do
        true -> ""
        _ -> memo
      end
      

      【讨论】:

        猜你喜欢
        • 2021-12-26
        • 1970-01-01
        • 2021-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-22
        • 2021-02-13
        • 1970-01-01
        相关资源
        最近更新 更多