How would you do nested validation for related children?
I want to validate field options
under field 1 against field options
in field 2.
Show validation message in field option 1
if field option 1
attribute value is not in field option 4/5/6
.
-
Field 1
- Field Option 1 - hello
- error: value
hello
is not in field option 4/5/6
- error: value
- Field Option 2 - foo
- Field Option 3 - bar
- Field Option 1 - hello
-
Field 2
- Field Option 4 - foo
- Field Option 5 - bar
- Field Option 6 - baz
defmodule Helpdesk.FieldOption do
use Ash.Resource, otp_app: :helpdesk
actions do
defaults [:read, create: [:name]]
update :update do
primary? true
accept [:name]
require_atomic? false
end
end
attributes do
uuid_primary_key :id
attribute :name, :string do
allow_nil? false
public? true
end
timestamps()
end
relationships do
belongs_to :form_field, Helpdesk.FormField
end
validations do
validate fn changeset, context ->
# ???
:ok
end
end
end