Leanpub Header

Skip to main content

The Rails 7 Way

The Rails™ 7 Way is the comprehensive, authoritative reference guide for professionals delivering production-quality code using modern Ruby on Rails. It illuminates the entire Rails 7 API, its most powerful idioms, design approaches, and libraries. Building on the previous editions, this edition has been heavily refactored and updated.

The authors are letting you choose the price you pay for this book!

Pick Your Price...
PDF
EPUB
WEB
1,207
Readers
750
Pages
186,669Words
About

About

About the Book

With a foreword written by Eileen M. Uchitelle, Rails Core Team

“When I read The Rails Way for the first time, I felt like I truly understood Rails for the first time.”—Steve Klabnik, Rails contributor and mentor

The Rails™ 7 Way is the comprehensive, authoritative reference guide for professionals delivering production-quality code using modern Ruby on Rails. It illuminates the entire Rails 7 API, its most powerful idioms, design approaches, and libraries. Building on the previous editions, this edition has been heavily refactored and updated. It features entirely new chapters on Action Mailbox, Active Storage, asset pipelines, ViewComponent, and Turbo.

Through detailed code examples, you’ll dive deep into Ruby on Rails, discover why it’s designed as it is, and learn to make it do exactly what you want. Proven in thousands of production systems, the knowledge in this book will maximize your productivity and help you build more successful solutions.

  • Build powerful, scalable, REST-compliant back-end services
  • Program complex program flows using Action Controller
  • Represent models, relationships, and operations in Active Record, and apply advanced Active Record techniques
  • Smoothly evolve your database schema via Migrations
  • Craft maintainable front-ends with ActionView
  • Build your assets with one of the asset pipelines
  • Optimize performance and scalability with caching and Turbo
  • Improve your productivity using Haml templating
  • Secure your systems against attacks like SQL Injection, XSS, and XSRF
  • Integrate email using Action Mailer and Action Mailbox
  • Improve responsiveness with background processing
  • Build “API-only” back-end projects that speak JSON
  • Store your files in the cloud via Active Storage
  • Leverage Multiple Databases
  • Write a reactive application with little to no JavaScript

Share this book

Categories

Price

Pick Your Price...

Minimum price

$35.00

$40.00

You pay

$40.00

Authors earn

$32.00
$

All prices are in US $. You can pay in US $ or in your local currency when you check out.

EU customers: prices exclude VAT, which is added during checkout.

...Or Buy With Credits!

Number of credits (Minimum 3)

3
The author will earn $36.00 from your purchase!
You can get credits monthly with a Reader Membership

Author

About the Authors

Obie Fernandez

The "one and only" Obie Fernandez is an avid writer and technology enthusiast, in addition to achieving worldwide success as an electronic music producer and touring DJ. He is a Principal Engineer at Shopify and boasts a legendary 30 year career in software development and entrepreneurship.

Obie has been CTO and co-founder of many startups including Mark Zuckerberg's beloved Andela and Trevor Owen's Lean Startup Machine. His published books include Patterns of Application Development Using AI many editions of The Rails Way and the acclaimed business title The Lean Enterprise. He also founded one of the world's best known Ruby on Rails web design and development agencies, Hashrocket and served for many years as the series editor for Addison-Wesley's Professional Ruby Series.

On the rare occasion when Obie is not busy building products, consulting clients or writing books, you can find him behind the lens of his camera or DJing in the dust at Burning Man.

Follow @obie on Twitter or email him at obiefernandez@gmail.com 

Leanpub Podcast

Episode 24

An Interview with Obie Fernandez

Lucas Dohmen

Experienced software engineer and team lead, systems architect, consultant and trainer. Two decades’ worth of experience across different technologies and organizations. Co-author of “The Rails Way” book series. Seasoned conference speaker and podcaster. Founder and maintainer of multiple open-source projects. I particularly enjoy collaborating remotely and asynchronously, helping people and organizations grow their potential.

Tom Henrik Aadland

Tom is a Business Architect at Ørn Software where he is building the bridge between business strategy and development. 

Tom was an early adopter and advocate of Rails, specialising in it since 2006. During his spare time he enjoys travelling, reading and music. One of his adventures led him to Argentina Buenos Aires where he spent a decade, pioneering in remote working and living life as a digital nomad before the term was even coined. There he was the founder of the first Rails conference in the Southern Cone, Locos por Rails 2009. When he is not working on some project he spends his time with his wife and two kids.

Contents

Table of Contents

Foreword

About the Authors

Acknowledgments

Introduction

  1. About This Book
  2. Voices from other experts
  3. Goals
  4. Prerequisites
  5. Book Structure
  6. Licenses, Attributions and Trademark Notice

Rails Configuration and Environments

  1. Generating a new Rails Application
  2. Bundler
  3. RSpec and Haml
  4. Running a Rails application
  5. Default Initializers
  6. Other Common Settings
  7. Zeitwerk
  8. Development Mode
  9. Test Mode
  10. Production Mode
  11. Configuring Application Secrets
  12. Configuring a Database
  13. Logging
  14. Default Gems
  15. Rack
  16. Conclusion

Routing

  1. The Two Purposes of Routing
  2. The routes.rb File
  3. Named Routes
  4. Scoping Routing Rules
  5. Listing Routes
  6. Conclusion

REST, Resources, and Rails

  1. REST in a Rather Small Nutshell
  2. Resources and Representations
  3. REST in Rails
  4. Routing and CRUD
  5. The Standard RESTful Controller Actions
  6. Singular Resource Routes
  7. Nested Resources
  8. Routing Concerns
  9. RESTful Route Customizations
  10. Controller-Only Resources
  11. Different Representations of Resources
  12. The RESTful Rails Action Set
  13. Conclusion

Working with Controllers

  1. Action Dispatch: Where It All Begins
  2. Parameters
  3. Render onto View…
  4. Additional Layout Options
  5. Redirecting
  6. Controller/View Communication
  7. Action Callbacks
  8. Streaming
  9. The respond_to Method
  10. Conclusion

Cookies, Session Management and the Flash

  1. Cookies
  2. Session
  3. The Flash
  4. What to Store in a Cookie
  5. What to Store in the Session
  6. Conclusion

Action View & Haml

  1. Haml
  2. Layouts and Templates
  3. Partials
  4. Conclusion

Active Record Migrations

  1. Creating Migrations
  2. Defining Columns
  3. Data Migration
  4. Database Schema and Sequencing
  5. Database Seeding
  6. Database-Related Tasks
  7. Conclusion

Working with Active Record

  1. The Basics
  2. Macro-Style Methods
  3. Defining Attributes
  4. CRUD: Creating, Reading, Updating, Deleting
  5. Database Locking
  6. Ignoring Columns
  7. Connections to Multiple Databases
  8. Using the Database Connection Directly
  9. Convention over Configuration
  10. Conclusion

Active Record Associations

  1. The Association Hierarchy
  2. One-to-Many Relationships
  3. Belongs to Associations
  4. Has Many Associations
  5. Many-to-Many Relationships
  6. One-to-One Relationships
  7. Working with Unsaved Objects and Associations
  8. Association Extensions
  9. The CollectionProxy Class
  10. Conclusion

Working with Queries

  1. Query Methods
  2. Custom SQL Queries
  3. Scopes
  4. Query Log Tags
  5. Conclusion

Validations

  1. Finding Errors
  2. Included Validations
  3. Common Validation Options
  4. Conditional Validation
  5. Short-form Validation
  6. Custom Validation Techniques
  7. Skipping Validations
  8. Working with the Errors object
  9. Conclusion

Advanced Active Record

  1. Polymorphic has_many Relationships
  2. Modules for Reusing Common Behavior
  3. Delegated Types
  4. Non-Persisted Models
  5. Callbacks
  6. Attributes API
  7. Serialized Attributes
  8. Enums
  9. Generating Secure Tokens
  10. Calculation Methods
  11. Batch Operations
  12. Single-Table Inheritance (STI)
  13. Abstract Base Model Classes
  14. Foreign-key Constraints
  15. Value Objects
  16. Modifying Active Record Classes at Runtime
  17. PostgreSQL
  18. Other Connection Methods
  19. Conclusion

Forms

  1. The basics of form_with
  2. FormOptionsHelper
  3. The Date and Time Selection Helpers
  4. Conclusion

Internationalization

  1. Localized Views
  2. I18n Setup
  3. Setting and Passing the Locale
  4. Setting Locale from Client Supplied Information
  5. Internationalizing Your Application
  6. Organization of Locale Files
  7. Looking Up Translations
  8. How to Store Your Custom Translations
  9. Exception Handling
  10. Conclusion

All About Helpers

  1. AssetTagHelper
  2. AssetUrlHelper
  3. AtomFeedHelper
  4. CacheHelper
  5. CaptureHelper
  6. ControllerHelper
  7. CspHelper
  8. CsrfHelper
  9. DateHelper
  10. DebugHelper
  11. FormHelper, FormOptionsHelper and FormTagHelper
  12. JavaScriptHelper
  13. NumberHelper
  14. OutputSafetyHelper
  15. RenderingHelper
  16. SanitizeHelper
  17. TagHelper
  18. TextHelper
  19. TranslationHelper
  20. UrlHelper
  21. Writing Your Own View Helpers
  22. Wrapping and Generalizing Partials
  23. Conclusion

Authentication and Authorization

  1. Warden
  2. Devise
  3. has_secure_password
  4. Pundit
  5. Conclusion

Security

  1. Password Management
  2. Log Masking
  3. TLS (Transport Layer Security)
  4. Model Mass-assignment Attributes Protection
  5. SQL Injection
  6. Cross-Site Scripting (XSS)
  7. CSRF (Cross-Site Request Forgery)
  8. Content Security Policy
  9. Permissions Policy
  10. Session Fixation Attacks
  11. Conclusion

Caching and Performance

  1. View Caching
  2. Data Caching
  3. Control of Web Caching
  4. ETags
  5. Conclusion

RSpec

  1. Introduction
  2. Behavior-Driven Development
  3. Basic Syntax and API
  4. Custom Expectation Matchers
  5. Helper Methods
  6. Shared Behaviors
  7. Shared Context
  8. Test Doubles
  9. Running Specs
  10. factory_bot
  11. Testing Tool Belt
  12. Writing Specs for your Rails App
  13. Conclusion

Background Processing

  1. Active Job
  2. Queueing Backends
  3. Conclusion

Active Storage

  1. Setup
  2. Expense Report
  3. Representations and Variants
  4. Removing Files
  5. Production
  6. Conclusion

Action Mailer and Action Mailbox

  1. Mailer Models
  2. Previews
  3. Testing Email Content
  4. Configuration
  5. Receiving Emails
  6. Conclusion

Asset Pipeline

  1. Propshaft
  2. importmap-rails
  3. dartsass-rails
  4. tailwindcss-rails
  5. A workflow without Node, npm or yarn
  6. CSS & JS Bundling
  7. The Rails Core Team Options
  8. faucet-pipeline
  9. Assets in Production
  10. Conclusion

Component-Based Views

  1. Installation and Configuration
  2. Bootstrap
  3. Styling the Flash
  4. Component Helper
  5. Closing the Alert
  6. Slots
  7. Rendering Collections
  8. Previews
  9. Working with Components
  10. Adding Items to our Invoice
  11. Conclusion

JavaScript

  1. Turbo Drive
  2. Turbo Frames
  3. Turbo Streams
  4. Broadcasting TurboStreams
  5. Custom Elements
  6. Alternatives
  7. Conclusion

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub