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

  1. 0.2.0 August 18, 2026 (26.5 KB)
  2. 0.1.2 August 16, 2026 (20.5 KB)
  3. 0.1.1 August 16, 2026 (20 KB)
  4. 0.1.0 August 16, 2026 (19.5 KB)

Pushed by

GitHub

SHA 256 checksum

Provenance