View Source Ash.Resource.Change.Builtins (ash v1.53.2)

Built in changes that are available to all resources

The functions in this module are imported by default in the actions section.

Link to this section Summary

Functions

Passes the provided value into changeset.api.load(), after the action has completed.

Calls Ash.Changeset.manage_relationship/4 with the changeset and relationship provided, using the value provided for the named argument

Clears a change off of the changeset before the action runs.

Relates the actor to the data being changed, as the provided relationship. Accepts the option :allow_nil?, which will not force an actor to be set. :allow_nil? defaults to false.

Passes the provided value into Ash.Changeset.select/3

Sets the attribute to the value provided.

Merges the given query context. If an MFA is provided, it will be called with the changeset.

Sets the attribute to the value provided if the attribtue is not already being changed.

Link to this section Functions

Passes the provided value into Ash.Changeset.ensure_selected/2

Passes the provided value into changeset.api.load(), after the action has completed.

Link to this function

manage_relationship(argument, relationship_name \\ nil, opts)

View Source

Calls Ash.Changeset.manage_relationship/4 with the changeset and relationship provided, using the value provided for the named argument

For example

change manage_relationship(:add_comments, :comments, on_missing: :ignore, on_match: :no_match, on_no_match: {:create, :add_comment_to_post}

Clears a change off of the changeset before the action runs.

Useful if a change is only used in validations but shouldn't ultimately be written to the data layer

Link to this function

relate_actor(relationship, opts \\ [])

View Source

Relates the actor to the data being changed, as the provided relationship. Accepts the option :allow_nil?, which will not force an actor to be set. :allow_nil? defaults to false.

Passes the provided value into Ash.Changeset.select/3

Link to this function

set_attribute(attribute, value)

View Source

Sets the attribute to the value provided.

If a zero argument function is provided, it is called to determine the value.

If a arg(:arg_name) is provided, the value will be read from the argument if supplied. If the argument specified is not given to the action, then nothing happens.

@spec set_context(map() | mfa()) :: {atom(), Keyword.t()}

Merges the given query context. If an MFA is provided, it will be called with the changeset.

The MFA should return {:ok, context_to_be_merged} or {:error, term}

Link to this function

set_new_attribute(attribute, value)

View Source

Sets the attribute to the value provided if the attribtue is not already being changed.

If a zero argument function is provided, it is called to determine the value.

Use arg(:argument_name) to use the value of the given argument. If the argument is not supplied then nothing happens.