Agile Web Development with Rails 7.2
by Sam Ruby
Rails 7.2 completely redefined what it means to produce fantastic user
experiences and provides a way to achieve all the benefits of
single-page applications—at a fraction of the complexity. Rails 7.2
integrated the Hotwire frameworks of Stimulus and Turbo directly as the
new defaults, together with that hot newness of import maps. The result
is a toolkit so powerful that it allows a single individual to create
modern applications upon which they can build a competitive business.
The way it used to be.
This purchase includes the Rails 7 book at no additional cost.
Ruby on Rails helps you produce high-quality, beautiful-looking web
applications quickly—you concentrate on creating the application, and
Rails takes care of the details. Rails 7.2 brings many improvements, and
this edition is updated to cover the new features and changes in best
practices.
We start with a step-by-step walkthrough of building a real application,
and in-depth chapters look at the built-in Rails features. Follow along
with an extended tutorial as you write a web-based store application.
Eliminate tedious configuration and housekeeping, seamlessly incorporate
JavaScript, send and receive emails, manage background jobs with
ActiveJob, and build real-time features using WebSockets and
ActionCable. Test your applications as you write them using the built-in
unit, integration, and system testing frameworks, internationalize your
applications, and deploy your applications easily and securely.
Rails 1.0 was released in December 2005. This book was there from the
start, and didn’t just evolve alongside Rails, it evolved with Rails. It
has been developed in consultation with the Rails core team. In fact,
Rails itself is tested against the code in this book.
What You Need
All you need is a Windows, Mac OS X, or Linux machine to do development
on. This book will take you through the steps to install Rails and its
dependencies. If you aren’t familiar with the Ruby programming language,
this book contains a chapter that covers the basics necessary to
understand the material in the book.
Resources
Releases:
- B3.0 2024/10/30
- B2.0 2024/10/21
- B1.0 2024/08/05
Note: Contents and extracts of beta books will change as the book is developed.
Introduction
- Getting Started
- Installing Rails
- Installing on Windows
- Installing on macOS
- Installing on Linux
- Choosing a Rails Version
- Setting Up Your Development Environment
- Rails and Databases
- Instant Gratification
- Creating a New Application
- Hello,
Rails!
- Linking Pages Together
- When Things Go Wrong
- The Architecture of Rails Applications
- Models, Views, and Controllers
- Rails Model Support
- Action Pack: The View and Controller
- Introduction to Ruby
- Ruby Is an Object-Oriented Language
- Data Types
- Logic
- Organizing Structures
- Marshaling Objects
- Pulling It All Together
- Ruby Idioms
- Building an Application
- The Depot Application
- Incremental Development
- What Depot Does
- Let’s Code
- Task A: Creating the Application
- Iteration A1: Creating the Product Maintenance Application
- Iteration A2: Making Prettier Listings
- Task B: Validation and Unit Testing
- Iteration B1: Validating!
- Iteration B2: Unit Testing of Models
- Task C: Catalog Display
- Iteration C1: Creating the Catalog
Listing
- Iteration C2: Adding a Page Layout
- Iteration C3: Using a Helper to Format the Price
- Iteration C4: Functional Testing of Controllers
- Iteration C5: Caching of Partial Results
- What We Just Did
- Task D: Cart Creation
- Iteration D1: Finding a Cart
- Iteration D2: Connecting Products to Carts
- Iteration D3: Adding a Button
- Task E: A Smarter Cart
- Iteration E1: Creating a Smarter Cart
- Iteration E2: Handling Errors
- Iteration E3: Finishing the Cart
- Task F: Hotwiring the Storefront
- Iteration F1: Moving the Cart
- Iteration F2: Creating a Hotwired Cart
- Iteration F3: Highlighting Changes
- Iteration F4: Broadcasting Updates with Action Cable
- Task G: Check Out!
- Iteration G1: Capturing an Order
- Iteration G2: Adding Fields Dynamically to a Form
- Iteration G3: Testing Our JavaScript Functionality
- Task H: Sending Emails and Processing Payments Efficiently
- Iteration H1: Sending Confirmation Emails
- Iteration H2: Connecting to a Slow Payment Processor
with Active Job
- Task I: Logging In
- Iteration I1: Adding Users
- Iteration I2: Authenticating Users
- Iteration I3: Limiting Access
- Iteration I4: Adding a Sidebar, More Administration
- Task J: Internationalization
- Task K: Receive Emails and Respond with Rich Text
- Iteration K1: Receiving Support Emails with Action Mailbox
- Iteration K2: Storing Support Requests from Our Mailbox
- Iteration K3: Responding with Rich Text
- Task L: Deployment and Production
- Overview of the changes
- Configuring the Databases
- Managing Secrets
- Building a Docker Image
- Getting Up and Running
- Depot Retrospective
- Rails Concepts
- Documenting What We’ve Done
- Rails in Depth
- Finding Your Way Around Rails
- Where Things Go
- Naming Conventions
- Active Record
- Defining Your Data
- Locating and Traversing Records
- Creating, Reading, Updating, and Deleting (CRUD)
- Participating in the Monitoring Process
- Transactions
- Action Dispatch and Action Controller
- Dispatching Requests to Controllers
- Processing of Requests
- Objects and Operations That Span Requests
- Action View
- Using Templates
- Generating Forms
- Processing Forms
- Uploading Files to Rails Applications
- Using Helpers
- Reducing Maintenance with Layouts and Partials
- Migrations
- Creating and Running Migrations
- Anatomy of a Migration
- Managing Tables
- Advanced Migrations
- When Migrations Go Bad
- Schema Manipulation Outside Migrations
- Customizing and Extending Rails
- Creating a Reusable Web Component
- Testing with RSpec
- Creating HTML Templates with Slim
- Customizing Rails in Other Ways
- Where to Go from Here
Author
Sam Ruby is a Rails Specialist at Fly.io, and previously was
President of the Apache Software Foundation, co-chaired the W3C HTML
Working Group, and has made significant contributions to many open
source projects and standards.
Dave Thomas, as one of the authors of the Agile Manifesto,
understands agility. As the author of Programming Ruby, he understands
Ruby. And, as an active Rails developer, he knows Rails.