Railties -- Gluing the Engine to the Rails
Railties is responsible for gluing all frameworks together. Overall, it:
* handles the bootstrapping process for a Rails application;
* manages the +rails+ command line interface;
* and provides the Rails generators core.
This is for Ruby on Rails 7.0.
Action Cable - Integrated WebSockets for Rails
Action Cable seamlessly integrates WebSockets with the rest of your Rails
application. It allows for real-time features to be written in Ruby in the
same style and form as the rest of your Rails application, while still being
performant and scalable. It's a full-stack offering that provides both a
client-side JavaScript framework and a server-side Ruby framework. You have
access to your full domain model written with Active Record or your ORM of
choice.
This is for Ruby on Rails 7.0.
Action Mailbox
Action Mailbox routes incoming emails to controller-like mailboxes for
processing in Rails. It ships with ingresses for Mailgun, Mandrill,
Postmark, and SendGrid. You can also handle inbound mails directly via the
built-in Exim, Postfix, and Qmail ingresses.
The inbound emails are turned into `InboundEmail` records using Active
Record and feature lifecycle tracking, storage of the original email on
cloud storage via Active Storage, and responsible data handling with
on-by-default incineration.
These inbound emails are routed asynchronously using Active Job to one or
several dedicated mailboxes, which are capable of interacting directly with
the rest of your domain model.
This is for Ruby on Rails 7.0.
Action Mailer -- Easy email delivery and testing
Action Mailer is a framework for designing email service layers. These
layers are used to consolidate code for sending out forgotten passwords,
welcome wishes on signup, invoices for billing, and any other use case that
requires a written notification to either a person or another system.
Action Mailer is in essence a wrapper around Action Controller and the Mail
gem. It provides a way to make emails using templates in the same way that
Action Controller renders views using templates.
Additionally, an Action Mailer class can be used to process incoming email,
such as allowing a blog to accept new posts from an email (which could even
have been sent from a phone).
This is for Ruby on Rails 7.0.
Active Storage
Active Storage makes it simple to upload and reference files in cloud
services like [Amazon S3](https://aws.amazon.com/s3/), [Google Cloud
Storage](https://cloud.google.com/storage/docs/), or [Microsoft Azure
Storage](https://azure.microsoft.com/en-us/services/storage/), and attach
those files to Active Records. Supports having one main service and mirrors
in other services for redundancy. It also provides a disk service for
testing or local deployments, but the focus is on cloud storage.
Files can be uploaded from the server to the cloud or directly from the
client to the cloud.
Image files can furthermore be transformed using on-demand variants for
quality, aspect ratio, size, or any other
[MiniMagick](https://github.com/minimagick/minimagick) or
[Vips](https://www.rubydoc.info/gems/ruby-vips/Vips/Image) supported
transformation.
This is for Ruby on Rails 7.0.
Active Record -- Object-relational mapping in Rails
Active Record connects classes to relational database tables to establish an
almost zero-configuration persistence layer for applications. The library
provides a base class that, when subclassed, sets up a mapping between the
new class and an existing table in the database. In the context of an
application, these classes are commonly referred to as *models*. Models can
also be connected to other models; this is done by defining *associations*.
Active Record relies heavily on naming in that it uses class and association
names to establish mappings between respective database tables and foreign
key columns. Although these mappings can be defined explicitly, it's
recommended to follow naming conventions, especially when getting started
with the library.
This is for Ruby on Rails 7.0.
Action Pack -- From request to response
Action Pack is a framework for handling and responding to web requests.
It provides mechanisms for *routing* (mapping request URLs to actions),
defining *controllers* that implement actions, and generating responses.
In short, Action Pack provides the controller layer in the MVC paradigm.
It consists of several modules:
* Action Dispatch, which parses information about the web request, handles
routing as defined by the user, and does advanced processing related to
HTTP such as MIME-type negotiation, decoding parameters in POST, PATCH,
or PUT bodies, handling HTTP caching logic, cookies and sessions.
* Action Controller, which provides a base controller class that can be
subclassed to implement filters and actions to handle requests.
The result of an action is typically content generated from views.
With the Ruby on Rails framework, users only directly interface with the
Action Controller module. Necessary Action Dispatch functionality is
activated by default and Action View rendering is implicitly triggered by
Action Controller. However, these modules are designed to function on their
own and can be used outside of Rails.
This is for Ruby on Rails 7.0.
Action View
Action View is a framework for handling view template lookup and rendering,
and provides view helpers that assist when building HTML forms, Atom feeds
and more. Template formats that Action View handles are ERB (embedded Ruby,
typically used to inline short Ruby snippets inside HTML), and XML Builder.
This is for Ruby on Rails 7.0.
Active Job - Make work happen later
Active Job is a framework for declaring jobs and making them run on a
variety of queuing backends. These jobs can be everything from regularly
scheduled clean-ups, to billing charges, to mailings -- anything that can be
chopped up into small units of work and run in parallel.
It also serves as the backend for Action Mailer's #deliver_later
functionality that makes it easy to turn any mailing into a job for running
later. That's one of the most common jobs in a modern web application:
sending emails outside the request-response cycle, so the user doesn't have
to wait on it.
The main point is to ensure that all Rails apps will have a job
infrastructure in place, even if it's in the form of an "immediate runner".
We can then have framework features and other gems build on top of that,
without having to worry about API differences between Delayed Job and
Resque. Picking your queuing backend becomes more of an operational
concern, then. And you'll be able to switch between them without having to
rewrite your jobs.
This is for Ruby on Rails 7.0.
Active Model -- model interfaces for Rails
Active Model provides a known set of interfaces for usage in model classes.
They allow for Action Pack helpers to interact with non-Active Record
models, for example. Active Model also helps with building custom ORMs for
use outside of the Rails framework.
This is for Ruby on Rails 7.0.
Active Support -- Utility classes and Ruby extensions from Rails
Active Support is a collection of utility classes and standard library
extensions that were found useful for the Rails framework. These additions
reside in this package so they can be loaded as needed in Ruby projects
outside of Rails.
This is for Ruby on Rails 7.0.
## Rails 6.1.4.4 (December 15, 2021) ##
* No changes.
## Rails 6.1.4.3 (December 14, 2021) ##
* Allow localhost with a port by default in development
[Fixes: #43864]
## Rails 6.1.4.4 (December 15, 2021) ##
* Fix issue with host protection not allowing host with port in development.
## Rails 6.1.4.3 (December 14, 2021) ##
* Fix issue with host protection not allowing localhost in development.