Agile Web Development with Rails 7
9781680509298, 9781937785550, 9781941222126, 9781937785499, 9781680500691, 9781680502503, 9781680502206, 9781680509830, 9781680509809
Rails 7 completely redefines what it means to produce fantastic user experiences and provides a way to achieve all the b
513
99
8MB
English
Pages 450
Year 2023
Report DMCA / Copyright
DOWNLOAD EPUB FILE
Table of contents :
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
Iteration J1: Selecting the Locale
Iteration J2: Translating the Storefront
Iteration J3: Translating Checkout
Iteration J4: Adding a Locale Switcher
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
Configuring the Database
Managing Secrets
Building a Docker Image
Getting Up and Running
Checking Up on a Deployed Application
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