View on GitHub
Changesets allow filtering, casting and validation of model changes.
There is an example of working with changesets in the introductory
documentation in the `Ecto` module.
## The Ecto.Changeset struct
The fields are:
* `valid?` - Stores if the changeset is valid
* `repo` - The repository applying the changeset (only set after a Repo function is called)
* `model` - The changeset root model
* `params` - The parameters as given on changeset creation
* `changes` - The `changes` from parameters that were approved in casting
* `errors` - All errors from validations
* `validations` - All validations performed in the changeset
* `required` - All required fields as a list of atoms
* `optional` - All optional fields as a list of atoms
- Add a code example (optional).