Accepting all inputs with `default_accept :*` isn't working

In upgrading to Ash 3.0, neither
defaults [:read, :destroy, create: :*, update: :*]
nor
default_accept :*
is working.

The error message still complains * No such input 'name' for action ...

The action works if I specify accept [attribute names....].

What am I missing?

This is what I tried.

  actions do
    defaults [:read, :destroy, create: :*]  # didn't work
    default_accept :*    # didn't work

    create :create do
      accept [       # this works
        :id,
        :name
        :age,

and this action is called like this

    Resource1
    |> Ash.Changeset.for_create(:create, resource)
    |> Ash.create!(actor: scope.current_user)

:* only includes attributes marked public?: true. In 2.0, we used to mark private attributes as private? true, but in 3.0 that has been flipped, and all attributes are private by default, and must be explicitly marked public? true.

2 Likes

Ah… I missed that. Thank you!

1 Like