Как обработать нулевой параметр, когда данные вставлены в метод создания
- Эликсир: 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