Как обработать нулевой параметр, когда данные вставлены в метод создания

  • Эликсир: 1.6
  • Феникс: 1,3

Я пытался вставить параметр, но когда один из параметров, таких как "мемо", является нулевым. Как я могу обработать ноль параметр в целом? Я просто хочу проверить, как это.

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

Какова лучшая практика проверки на ноль в эликсире. если или дело или что-нибудь еще?

В этом случае, когда _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

2 ответа

Решение

Точная транзакция будет:

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

Более идиоматический способ, который будет работать, только если заметка не может быть false (false превратится в "" а также) это:

memo = memo || ""

Альтернативой может быть

      memo = case memo do nil -> ""; _ -> memo end
Другие вопросы по тегам