A step-by-step walkthrough that builds one small application — a task tracker with login-protected CRUD — touching most of the framework along the way. Each part builds on the last; follow them in order.
Unlike Your First Application (a quick single-page taste of routing + a model), this tutorial goes further: migrations, validation, authentication, middleware, server-rendered views, and tests, all wired into one working app.
- Setup — install, configure, and confirm the app boots
- Routes & Controllers — a
TaskControllerbehind real routes - Database & Models — a migration and a
TaskActive Record model - Validation — reject bad input before it reaches the model
- Views — server-rendered HTML with layouts and template inheritance
- Authentication & Middleware — scope tasks to the logged-in user
- Testing — a Feature test covering the full request lifecycle
- Next Steps — where to go from here
By the end you'll have a working /tasks CRUD flow, gated behind login, with a passing test — and a mental map of how routing, models, validation, views, middleware, and tests fit together in this framework.