# rails/rails

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rails-rails).**

58,690 stars · 22,172 forks · Ruby · MIT

## Links

- GitHub: https://github.com/rails/rails
- Homepage: https://rubyonrails.org
- awesome-repositories: https://awesome-repositories.com/repository/rails-rails.md

## Topics

`activejob` `activerecord` `framework` `html` `mvc` `rails` `ruby`

## Description

This project is a full-stack web framework designed for building database-backed applications through a standardized architectural pattern. It provides a comprehensive suite of integrated libraries that manage the entire request-response lifecycle, from routing incoming web traffic to rendering dynamic server-side templates. By utilizing an object-relational mapping layer, the framework allows developers to define domain models that map database tables directly to application objects, simplifying data persistence, schema migrations, and complex relationship management.

The framework is distinguished by its commitment to convention over configuration, which reduces manual setup by using predefined naming patterns and directory structures to wire components together. It employs a model-view-controller architecture to separate application logic into distinct layers, supported by a modular middleware pipeline that handles cross-cutting concerns like authentication and session management. These features are complemented by built-in utilities for background job processing, real-time communication, and file storage, enabling the creation of complex, scalable services within a single cohesive environment.

Beyond core development, the framework includes an extensive suite of infrastructure tools to support the entire software lifecycle. This includes automated testing and quality inspection capabilities, security vulnerability scanning, and specialized helpers for production deployment and performance optimization. Developers can further extend the framework by building custom plugins, engines, and middleware to meet specific project requirements.

## Tags

### Web Development

- [Full-Stack Frameworks](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/full-stack-frameworks.md) — Standardizes the interaction between server-side logic and client-side interfaces through a consistent architectural pattern.
- [Full-Stack Web Frameworks](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/full-stack-frameworks/full-stack-web-frameworks.md) — Integrates routing, data modeling, and view rendering into a cohesive environment for complete application development.
- [HTTP Request Handlers](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/routing-request-handling/http-request-handlers.md) — Directs incoming HTTP traffic to controller methods that process requests and trigger appropriate responses. ([source](https://api.rubyonrails.org/))
- [Template Rendering Engines](https://awesome-repositories.com/f/web-development/frontend-development-tools/web-interface-components/template-rendering-engines.md) — Combines markup with dynamic code to generate HTML for web responses and automated notifications. ([source](https://api.rubyonrails.org/))
- [Server-Side Rendering Engines](https://awesome-repositories.com/f/web-development/template-engines/server-side-rendering-engines.md) — Produces dynamic HTML by mapping data objects onto file-based templates with built-in layout management. ([source](https://guides.rubyonrails.org/))
- [Rack-Based Middleware Pipelines](https://awesome-repositories.com/f/web-development/backend-development/middleware-pipelines/rack-based-middleware-pipelines.md) — Processes HTTP requests through a modular stack that handles session management, authentication, and error reporting.
- [Full-Stack Web Development](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/full-stack-frameworks/full-stack-web-development.md) — Organizes server-side logic and client-side interfaces using a structured, convention-based approach to accelerate web application creation.

### Data & Databases

- [Object-Relational Mappers](https://awesome-repositories.com/f/data-databases/object-relational-mappers.md) — Simplifies data persistence and complex query building through an integrated mapping layer. ([source](https://guides.rubyonrails.org/getting_started.html))
- [Domain Models](https://awesome-repositories.com/f/data-databases/object-relational-mappers/domain-models.md) — Encapsulates business logic by mapping database rows directly to application objects. ([source](https://api.rubyonrails.org/))
- [Advanced Database Features](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/database-management/advanced-database-features.md) — Enables complex data modeling with features like multi-database routing, field-level encryption, and composite primary keys. ([source](https://guides.rubyonrails.org/))
- [Database Schema Migrations](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/database-management/database-schema-migrations.md) — Automates versioned database schema updates to maintain structural consistency across development environments. ([source](https://guides.rubyonrails.org/getting_started.html))
- [File Attachment Systems](https://awesome-repositories.com/f/data-databases/data-management/document-record-handling/file-attachment-systems.md) — Links binary assets directly to database records, managing the storage and retrieval of files through integrated model associations. ([source](https://guides.rubyonrails.org/getting_started.html))

### Software Engineering & Architecture

- [Active Record Patterns](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/design-patterns/active-record-patterns.md) — Binds database records to objects to unify persistence, validation, and relationship management.
- [Application Framework Extensions](https://awesome-repositories.com/f/software-engineering-architecture/application-frameworks/application-framework-extensions.md) — Supports modular customization through a system of plugins, engines, and middleware. ([source](https://guides.rubyonrails.org/))
- [Model-View-Controller Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/model-view-controller-frameworks.md) — Separates application logic into distinct layers for data management, user interface rendering, and control flow.
- [Background Job Processors](https://awesome-repositories.com/f/software-engineering-architecture/execution-control/background-job-processors.md) — Offloads time-consuming tasks to asynchronous queues to maintain high application responsiveness.
- [Extensibility](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility.md) — Allows developers to modify core behavior or add custom functionality through a modular system of plugins and middleware.

### DevOps & Infrastructure

- [Deployment Orchestrators](https://awesome-repositories.com/f/devops-infrastructure/deployment-management-strategies/execution-platforms-and-targets/deployment-infrastructure/deployment-orchestrators.md) — Streamlines the configuration and scaling of web services with integrated security and performance management.
- [Automated Quality Assurance Suites](https://awesome-repositories.com/f/devops-infrastructure/continuous-integration/automated-quality-assurance-suites.md) — Executes automated test suites and quality inspections to ensure code reliability during the deployment process. ([source](https://guides.rubyonrails.org/getting_started.html))
- [Container Orchestration](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration.md) — Facilitates container-based deployments by packaging application code and dependencies into portable images for consistent execution across cloud environments. ([source](https://guides.rubyonrails.org/getting_started.html))
- [Production Optimization Strategies](https://awesome-repositories.com/f/devops-infrastructure/deployment-management/production-optimization-strategies.md) — Configures production environments with performance tuning, security hardening, and robust error monitoring to ensure application reliability. ([source](https://guides.rubyonrails.org/))

### Networking & Communication

- [HTTP Request Routers](https://awesome-repositories.com/f/networking-communication/networking/http-request-routers.md) — Routes incoming network traffic to specific application handlers while managing the full request-response lifecycle.

### Security & Cryptography

- [Authentication Strategies](https://awesome-repositories.com/f/security-cryptography/identity-access-management/authentication-strategies.md) — Secures application access through built-in user authentication, profile management, and permission controls. ([source](https://rubyonrails.org/docs/tutorials))

### User Interface & Experience

- [Server-Side Template Engines](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/server-side-rendering-engines/server-side-template-engines.md) — Injects dynamic application data into HTML templates to generate server-side responses and email content.

### Part of an Awesome List

- [Database Mapping](https://awesome-repositories.com/f/awesome-lists/data/database-mapping.md) — Standard object-relational mapping for Rails applications.
- [Core Extensions](https://awesome-repositories.com/f/awesome-lists/devtools/core-extensions.md) — Collection of utility classes and standard library extensions.
- [Core Framework Components](https://awesome-repositories.com/f/awesome-lists/devtools/core-framework-components.md) — Integrates websockets with a Rails app.
- [Developer Tools](https://awesome-repositories.com/f/awesome-lists/devtools/developer-tools.md) — Full-stack web application framework.
- [Programming Languages](https://awesome-repositories.com/f/awesome-lists/devtools/programming-languages.md) — Official documentation for the Ruby on Rails framework.
- [Ruby Projects](https://awesome-repositories.com/f/awesome-lists/devtools/ruby-projects.md) — Listed in the “Ruby Projects” section of the Awesome For Beginners awesome list.
- [String Manipulation and Analysis](https://awesome-repositories.com/f/awesome-lists/devtools/string-manipulation-and-analysis.md) — ActiveSupport extensions for language-aware string handling.
- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — Full-stack framework optimized for rapid API development.
- [Web Frameworks and Runtimes](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks-and-runtimes.md) — Full-stack web development framework for the Ruby language.

### Testing & Quality Assurance

- [Testing Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks.md) — Verifies business logic, database interactions, and email delivery through comprehensive, built-in test suites.
- [Test Data Factories](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/test-data-management/test-data-factories.md) — Populates databases with predefined records to ensure consistent and repeatable conditions during automated test execution. ([source](https://guides.rubyonrails.org/getting_started.html))

### Development Tools & Productivity

- [Development Suites](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/integrated-development-environments-toolchains/development-suites.md) — Bundles essential tools for testing, security, background jobs, and file management into a cohesive environment for the entire development lifecycle.
- [Fragment Caching Systems](https://awesome-repositories.com/f/development-tools-productivity/platforms-runtimes-language-services/fragment-caching-systems.md) — Caches rendered HTML fragments to minimize server load and accelerate page delivery for end users. ([source](https://guides.rubyonrails.org/getting_started.html))
