この関数では、priceFloat = price/1
を実行してフロートに変換する前に、 "price"変数が0かnilかどうかをチェックする必要があります。エリクシールの確実な値が0またはnilでない
def insert_product_shop(conn, product_id, shop_id, price) do
IO.inspect(price, label: "price")
priceFloat = price/1
changeset = Api.ProductShop.changeset(%Api.ProductShop{p_id: product_id, s_id: shop_id, not_in_shop_count: 0, price: priceFloat})
errors = changeset.errors
valid = changeset.valid?
case insert(changeset) do
{:ok, product_shop} ->
{:ok, product_shop}
{:error, changeset} ->
{:error, :failure}
end
end
慣用的な方法は何ですか?
私はこれを試してみましたが、私はまだ算術演算エラーが発生します。
def insert_product_shop(conn, product_id, shop_id, price) do
IO.inspect(price, label: "price")
case {price} do
{price} when price > 0 ->
priceFloat = price/1
changeset = Api.ProductShop.changeset(%Api.ProductShop{p_id: product_id, s_id: shop_id, not_in_shop_count: 0, price: priceFloat})
errors = changeset.errors
valid = changeset.valid?
case insert(changeset) do
{:ok, product_shop} ->
{:ok, product_shop}
{:error, changeset} ->
{:error, :failure}
end
end
end
完全に動作します。ありがとう。 – BeniaminoBaggins