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.8.0 September 19, 2026 (81.5 KB)
- 0.7.0 September 16, 2026 (69 KB)
- 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.1.2 August 16, 2026 (20.5 KB)