Comments (2)
There is only one violation for age: 18 isn't greater than 18. But it also reports the other error "age must be an integer".
Right, this is actually the expected behavior with the current implementation. This will be improved once error message compilation is optimized. The trick is to skip certain error messages when they make no sense, like in this case saying that something must be greater than 18 implies that it must be a number, so we can only display one error. I'm gonna improve that in the next release.
To give you a bit of a background - in dry-v error messages are a result of applying predicates but we also have potential error messages that we generate from rule definitions, and we call them "validation hints". It means that some specific rule might be violated and we have a specific error message for it but we also want to display additional information about other rules that potentially might be violated, so that the user knows about the requirements for a specific value.
This is a pretty tricky thing to implement, but it's doable :)
It accepts the string representation of the age "19" as an integer.
It does because form schemas coerces input based on type expectations. I understand why it confused you though, and it's related to "validation hints".
from dry-validation.
Is there any change about this? I know it makes sense to explain the user what's expected, but in some cases (email uniqueness, for example) it might be interesting to be able to only display failing validations.
from dry-validation.
Related Issues (20)
- Inconsistent behavior in nested schemas via passed in blocks HOT 8
- Incorrect validation of rule keys substring of schema keys
- Injecting dependencies using dry-auto_inject with reserved names
- `rule.each` produces error when input is `nil` HOT 2
- Building contract failed when or-ing types HOT 2
- Validation passes when array type is invalid HOT 1
- NoMethodError is raised when validating non-hash objects with a Dry::Validation::Contract that has config.validate_keys set to true HOT 4
- Dry::Validation::MissingMessageError after update dry stack HOT 2
- Weird issue since 1.10 dry-schema release HOT 3
- Validator didn't recognize nil string param value as empty, and didn't set default value HOT 6
- JSON schema contract failing to recognise valid input HOT 2
- Rule validation does not show in errors when the key validated is in an array of hashes HOT 1
- Mixing of `~>` and `<` in gemspec versioning HOT 1
- Documentation missmatch: `predicates_as_macros` is not available until v1.2
- `Dry::Validation::Result` lacks an `#output` method similar to `Dry::Schema::Result` HOT 4
- `Dry::Validation::Contract` behaves different when defined with a `params Dry::Schema::Params(parent: RawSchema)` vs. `params ParamsSchema` HOT 2
- errors(full: true), for nested input, could be better HOT 1
- False-positive when validating a nested datetime in an array of hashes HOT 2
- Consider release a new version with updated dependencies HOT 2
- Define contract with namespace but got TypeError when use errors(full: true)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dry-validation.