The Rails 7 Way
134
15
15MB
English
Pages [750]
Report DMCA / Copyright
DOWNLOAD PDF FILE
Table of contents :
Table of Contents
Foreword
About the Authors
Acknowledgments
Introduction
About This Book
Voices from other experts
Goals
Prerequisites
Book Structure
Licenses, Attributions and Trademark Notice
Rails Configuration and Environments
Generating a new Rails Application
Bundler
RSpec and Haml
Running a Rails application
Default Initializers
Other Common Settings
Zeitwerk
Development Mode
Test Mode
Production Mode
Configuring Application Secrets
Configuring a Database
Logging
Default Gems
Rack
Conclusion
Routing
The Two Purposes of Routing
The routes.rb File
Named Routes
Scoping Routing Rules
Listing Routes
Conclusion
REST, Resources, and Rails
REST in a Rather Small Nutshell
Resources and Representations
REST in Rails
Routing and CRUD
The Standard RESTful Controller Actions
Singular Resource Routes
Nested Resources
Routing Concerns
RESTful Route Customizations
Controller-Only Resources
Different Representations of Resources
The RESTful Rails Action Set
Conclusion
Working with Controllers
Action Dispatch: Where It All Begins
Parameters
Render onto View…
Additional Layout Options
Redirecting
Controller/View Communication
Action Callbacks
Streaming
The respond_to Method
Conclusion
Cookies, Session Management and the Flash
Cookies
Session
The Flash
What to Store in a Cookie
What to Store in the Session
Conclusion
Action View & Haml
Haml
Layouts and Templates
Partials
Conclusion
Active Record Migrations
Creating Migrations
Defining Columns
Data Migration
Database Schema and Sequencing
Database Seeding
Database-Related Tasks
Conclusion
Working with Active Record
The Basics
Macro-Style Methods
Defining Attributes
CRUD: Creating, Reading, Updating, Deleting
Database Locking
Ignoring Columns
Connections to Multiple Databases
Using the Database Connection Directly
Convention over Configuration
Conclusion
Active Record Associations
The Association Hierarchy
One-to-Many Relationships
Belongs to Associations
Has Many Associations
Many-to-Many Relationships
One-to-One Relationships
Working with Unsaved Objects and Associations
Association Extensions
The CollectionProxy Class
Conclusion
Working with Queries
Query Methods
Custom SQL Queries
Scopes
Query Log Tags
Conclusion
Validations
Finding Errors
Included Validations
Common Validation Options
Conditional Validation
Short-form Validation
Custom Validation Techniques
Skipping Validations
Working with the Errors object
Conclusion
Advanced Active Record
Polymorphic has_many Relationships
Modules for Reusing Common Behavior
Delegated Types
Non-Persisted Models
Callbacks
Attributes API
Serialized Attributes
Enums
Generating Secure Tokens
Calculation Methods
Batch Operations
Single-Table Inheritance (STI)
Abstract Base Model Classes
Foreign-key Constraints
Value Objects
Modifying Active Record Classes at Runtime
PostgreSQL
Other Connection Methods
Conclusion
Forms
The basics of form_with
FormOptionsHelper
The Date and Time Selection Helpers
Conclusion
Internationalization
Localized Views
I18n Setup
Setting and Passing the Locale
Setting Locale from Client Supplied Information
Internationalizing Your Application
Organization of Locale Files
Looking Up Translations
How to Store Your Custom Translations
Exception Handling
Conclusion
All About Helpers
AssetTagHelper
AssetUrlHelper
AtomFeedHelper
CacheHelper
CaptureHelper
ControllerHelper
CspHelper
CsrfHelper
DateHelper
DebugHelper
FormHelper, FormOptionsHelper and FormTagHelper
JavaScriptHelper
NumberHelper
OutputSafetyHelper
RenderingHelper
SanitizeHelper
TagHelper
TextHelper
TranslationHelper
UrlHelper
Writing Your Own View Helpers
Wrapping and Generalizing Partials
Conclusion
Authentication and Authorization
Warden
Devise
has_secure_password
Pundit
Conclusion
Security
Password Management
Log Masking
TLS (Transport Layer Security)
Model Mass-assignment Attributes Protection
SQL Injection
Cross-Site Scripting (XSS)
CSRF (Cross-Site Request Forgery)
Content Security Policy
Permissions Policy
Session Fixation Attacks
Conclusion
Caching and Performance
View Caching
Data Caching
Control of Web Caching
ETags
Conclusion
RSpec
Introduction
Behavior-Driven Development
Basic Syntax and API
Custom Expectation Matchers
Helper Methods
Shared Behaviors
Shared Context
Test Doubles
Running Specs
factory_bot
Testing Tool Belt
Writing Specs for your Rails App
Conclusion
Background Processing
Active Job
Queueing Backends
Conclusion
Active Storage
Setup
Expense Report
Representations and Variants
Removing Files
Production
Conclusion
Action Mailer and Action Mailbox
Mailer Models
Previews
Testing Email Content
Configuration
Receiving Emails
Conclusion
Asset Pipeline
Propshaft
importmap-rails
dartsass-rails
tailwindcss-rails
A workflow without Node, npm or yarn
CSS & JS Bundling
The Rails Core Team Options
faucet-pipeline
Assets in Production
Conclusion
Component-Based Views
Installation and Configuration
Bootstrap
Styling the Flash
Component Helper
Closing the Alert
Slots
Rendering Collections
Previews
Working with Components
Adding Items to our Invoice
Conclusion
JavaScript
Turbo Drive
Turbo Frames
Turbo Streams
Broadcasting TurboStreams
Custom Elements
Alternatives
Conclusion