diff --git a/lib/ash/changeset/changeset.ex b/lib/ash/changeset/changeset.ex index eb3d15bb..7c6ac3b9 100644 --- a/lib/ash/changeset/changeset.ex +++ b/lib/ash/changeset/changeset.ex @@ -706,7 +706,7 @@ defmodule Ash.Changeset do Enum.reduce(attributes, changeset, fn required_attribute, changeset -> if Ash.Changeset.changing_attribute?(changeset, required_attribute.name) || - required_attribute.default do + not is_nil(required_attribute.default) do changeset else Ash.Changeset.add_error( @@ -730,8 +730,7 @@ defmodule Ash.Changeset do end Enum.reduce(attributes, changeset, fn required_attribute, changeset -> - if Ash.Changeset.changing_attribute?(changeset, required_attribute.name) || - required_attribute.default do + if Ash.Changeset.changing_attribute?(changeset, required_attribute.name) do if get_attribute(changeset, required_attribute.name) do changeset else diff --git a/test/actions/create_test.exs b/test/actions/create_test.exs index ac07da35..1b782c5d 100644 --- a/test/actions/create_test.exs +++ b/test/actions/create_test.exs @@ -155,6 +155,8 @@ defmodule Ash.Test.Actions.CreateTest do attribute(:list_attribute, {:array, :integer}) attribute(:date, :date) attribute(:binary, :binary) + attribute(:required_with_default, :string, allow_nil?: false, default: "string") + attribute(:required_boolean_with_default, :boolean, allow_nil?: false, default: false) attribute(:list_attribute_with_constraints, {:array, :integer}, constraints: [