只有當字段不爲零時,如何將字段添加到changeset
?如果值爲零,我不想更新數據庫中的值。我需要檢查3個字段,只更新那些不是零的字段。Ecto changeset - 跳過無字段
當前代碼:
put "/products" do
errors = {}
IO.inspect(conn.body_params)
product = Api.Product |> Api.Repo.get(conn.query_params["id"])
IO.inspect(product)
if conn.body_params["image"] do
changeset = Api.Product.changeset(product, %{image: conn.body_params["image"]})
end
if conn.body_params["description"] do
changeset = Api.Product.changeset(product, %{description: conn.body_params["description"]})
end
if conn.body_params["price"] do
changeset = Api.Product.changeset(product, %{price: conn.body_params["price"]})
end
case Api.Repo.update(changeset) do
{:ok, product} ->
errors = Tuple.append(errors, "Product updated")
{:error, changeset} ->
errors = Tuple.append(errors, "Product not updated")
end
conn
|> put_resp_content_type("application/json")
|> send_resp(200, Poison.encode!(%{
successs: "success",
errors: Tuple.to_list(errors)
}))
end
我需要他們能夠是零時插入。那麼我只需要在這裏更新他們,如果他們有價值而不是零。我需要確保它不會導致錯誤,如果其中一個是零,因爲其他的不需要保存。 – BeniaminoBaggins