Strong parameters answer only which keys may pass. A Permittable contract also says what each field should be: it casts the value to a declared type, validates bounds and formats, applies defaults, and renders every failure as a 422 that names the offending parameter. Because a contract is class-level data rather than code inside the action, it can also be checked against the database when the controller loads, so a column dropped by a migration fails the deploy instead of the request. activesupport is the only runtime dependency.
Required Ruby Version
>= 3.2.0
Authors
Ethan Nguyen
Versions
- 0.6.0 September 07, 2026 (59.5 KB)
- 0.5.2 September 06, 2026 (52 KB)
- 0.5.1 September 02, 2026 (50 KB)
- 0.5.0 September 02, 2026 (49.5 KB)
- 0.4.0 September 01, 2026 (38.5 KB)