flash-gordon on custom-builder-methods
Support for custom builder meth… (compare)
flash-gordon on or_nil-extension
Add Type#or_nil via builders ex… (compare)
dry-bot on master
[devtools] sync (compare)
flash-gordon on master
Fix changelog (compare)
dry-bot on master
[devtools] sync (compare)
flash-gordon on master
Update changelog.yml Add reminder (compare)
flash-gordon on deprecate-class-name-inferring
flash-gordon on master
Deprecate predicate inferring f… Merge pull request #414 from dr… (compare)
flash-gordon on deprecate-class-name-inferring
Deprecate predicate inferring f… (compare)
flash-gordon on or_nil-extension
Add Type#or_nil via builders ex… (compare)
Hello folks, I wonder if there is a recommended (or better) way for validating related values in dry-validations, e.g.:
schema = Dry::Validation.Form do
key(:a).required(:int?, gteq?: 0)
key(:b).required(:int?)
rule(:b_gt_a) do
value(:b).gt?(value(:a))
end
end
result = schema.call(params)
I noticed that the validation message is plain, for example, if I pass {a: 0, b: 0}, the schema says that b must be greater than 0, but it would be really helpful for the client to know that it must be greater than a
schema = Dry::Validation.Form do
configure do
def self.messages
Dry::Validation::Messages.default.merge(
en: { errors: { b_gt_a: 'b must be greater than a' } }
)
end
end
key(:a).required(:int?, gteq?: 0)
key(:b).required(:int?)
rule(:b_gt_a) do
value(:b).gt?(value(:a))
end
end
result = schema.call({a: 0, b: 0})
result.messages
# => {:b_gt_a=>["b must be greater than a"]}