dry-rb / dry-rb/dry-validation

Error message path for rule with nested params

Open
#685 1 comment 0 reactions 0 assignees View on GitHub
bug help wanted
Dominant language
Ruby
Stars
1.4k
Forks
195
PR merge metrics
No merged PRs in 30d

Description

## Describe the bug
The error message from dry-validation for incorrect key nesting in en.yml file for rule with nested params is giving wrong path.

## To Reproduce
Consider having such schema and some rule depending on several nested parameters.
```
params do
required(:data).hash do
required(:type).filled(:string)
required(:attributes).hash do
....
required(:phone_number).maybe(:string)
required(:phone_number_prefix).maybe(:string)
end
end
.....
end

rule(data: {attributes: [:phone_number, :phone_number_prefix]}) do
phone_number = ....

key.failure(:invalid) unless phone_number.valid?
end
```
I tried different nesting of keys in en.yml, but nothing worked. This was the last edit:
```
en:
dry_validation:
errors:
rules:
data:
attributes:
phone_number:
phone_number_prefix:
invalid: 'is of invalid format'
```

Which as many other tries was giving this error
`Dry::Validation::MissingMessageError: Message template for :invalid under "data.attributes.phone_number.phone_number_prefix" was not found for such schema`

## Expected behavior

Error message with valid path in yml file for such rule or which says that rule name should be written in another way.

Discussion started here:
[https://discourse.dry-rb.org/t/message-path-for-rule-with-very-nested-params/1257/3](url)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.