- represents data
- name usually corresponds to a database table name
- model mediates between object and database
- naming: after data that they represent


- gather and process data that made available in model
- naming: pluralised model name controller (e.g. posts_controller.rb)


- renders output into format that browsers can view
- html / xml
- usually named after the action that they represent from the controller