1 Actualización a Rails 6.0
Si está actualizando una aplicación existente, es una buena idea tener una buena cobertura de pruebas antes de comenzar. También debe actualizar primero a Rails 5.2 en caso de que no lo haya hecho y asegurarse de que su aplicación siga funcionando como se espera antes de intentar una actualización a Rails 6.0. Una lista de cosas a tener en cuenta al actualizar está disponible en la guía Actualización de Ruby on Rails.
2 Características principales
2.1 Action Mailbox
Action Mailbox le permite enrutar correos electrónicos entrantes a buzones de correo similares a controladores. Puede obtener más información sobre Action Mailbox en la guía Conceptos básicos de Action Mailbox.
2.2 Action Text
Action Text brinda contenido de texto enriquecido y edición a Rails. Incluye el editor Trix que maneja todo, desde el formato hasta los enlaces, citas, listas, imágenes incrustadas y galerías. El contenido de texto enriquecido generado por el editor Trix se guarda en su propio modelo RichText que está asociado con cualquier modelo Active Record existente en la aplicación. Cualquier imagen incrustada (u otros archivos adjuntos) se almacenan automáticamente utilizando Active Storage y se asocian con el modelo RichText incluido.
Puede obtener más información sobre Action Text en la guía Descripción general de Action Text.
2.3 Pruebas paralelas
Pruebas paralelas le permite paralelizar su conjunto de pruebas. Si bien la bifurcación de procesos es el método predeterminado, también se admite el uso de hilos. Ejecutar pruebas en paralelo reduce el tiempo que tarda en ejecutarse todo el conjunto de pruebas.
2.4 Pruebas de Action Cable
Las herramientas de prueba de Action Cable le permiten probar la funcionalidad de Action Cable en cualquier nivel: conexiones, canales, transmisiones.
3 Railties
Consulte el registro de cambios para obtener cambios detallados.
3.1 Eliminaciones
Eliminar el ayudante
after_bundle
obsoleto dentro de las plantillas de los complementos. (Confirmación)Eliminar el soporte obsoleto para
config.ru
que utiliza la clase de la aplicación como argumento derun
. (Confirmación)Eliminar el argumento obsoleto
environment
de los comandos de Rails. (Confirmación)Eliminar el método obsoleto
capify!
en generadores y plantillas. (Confirmación)Eliminar
config.secret_token
obsoleto. (Confirmación)
3.2 Obsolescencias
Obsoleto pasar el nombre del servidor Rack como un argumento regular a
rails server
. (Solicitud de extracción)Obsoleto el uso del entorno
HOST
para especificar la IP del servidor. (Solicitud de extracción)Obsoleto el acceso a los hashes devueltos por
config_for
mediante claves no simbólicas. (Solicitud de extracción)
3.3 Cambios destacados
Agregar una opción explícita
--using
o-u
para especificar el servidor para el comandorails server
. (Solicitud de extracción)Agregar la capacidad de ver la salida de
rails routes
en formato expandido. (Solicitud de extracción)Ejecutar la tarea de la base de datos de semillas utilizando el adaptador Active Job en línea. (Solicitud de extracción)
Agregar un comando
rails db:system:change
para cambiar la base de datos de la aplicación. (Solicitud de extracción)Agregar el comando
rails test:channels
para probar solo los canales de Action Cable. (Solicitud de extracción)Introducir protección contra ataques de rebinding de DNS. (Pull Request)
Agregar la capacidad de abortar en caso de fallo al ejecutar comandos de generador. (Pull Request)
Hacer que Webpacker sea el compilador de JavaScript predeterminado para Rails 6. (Pull Request)
Agregar soporte para múltiples bases de datos en el comando
rails db:migrate:status
. (Pull Request)Agregar la capacidad de utilizar rutas de migración diferentes de múltiples bases de datos en los generadores. (Pull Request)
Agregar soporte para credenciales de múltiples entornos. (Pull Request)
Hacer que
null_store
sea el almacén de caché predeterminado en el entorno de prueba. (Pull Request)
4 Action Cable
Consulte el registro de cambios para obtener cambios detallados.
4.1 Eliminaciones
- Reemplazar
ActionCable.startDebugging()
yActionCable.stopDebugging()
conActionCable.logger.enabled
. (Pull Request)
4.2 Deprecaciones
- No hay deprecaciones para Action Cable en Rails 6.0.
4.3 Cambios destacados
Agregar soporte para la opción
channel_prefix
para adaptadores de suscripción de PostgreSQL encable.yml
. (Pull Request)Permitir pasar una configuración personalizada a
ActionCable::Server::Base
. (Pull Request)Agregar ganchos de carga
:action_cable_connection
y:action_cable_channel
. (Pull Request)Agregar
Channel::Base#broadcast_to
yChannel::Base.broadcasting_for
. (Pull Request)Cerrar una conexión al llamar a
reject_unauthorized_connection
desde unaActionCable::Connection
. (Pull Request)Convertir el paquete de JavaScript de Action Cable de CoffeeScript a ES2015 y publicar el código fuente en la distribución de npm. (Pull Request)
Mover la configuración del adaptador WebSocket y del adaptador de registro de propiedades de
ActionCable
aActionCable.adapters
. (Pull Request)Agregar una opción
id
al adaptador Redis para distinguir las conexiones de Redis de Action Cable. (Pull Request)
5 Action Pack
Consulte el registro de cambios para obtener cambios detallados.
5.1 Eliminaciones
Eliminar el ayudante
fragment_cache_key
en desuso en favor decombined_fragment_cache_key
. (Commit)Eliminar los métodos en desuso en
ActionDispatch::TestResponse
:#success?
en favor de#successful?
,#missing?
en favor de#not_found?
,#error?
en favor de#server_error?
. (Commit)
5.2 Deprecaciones
Deprecar
ActionDispatch::Http::ParameterFilter
en favor deActiveSupport::ParameterFilter
. (Pull Request)Deprecar
force_ssl
a nivel de controlador en favor deconfig.force_ssl
. (Pull Request)
5.3 Cambios destacados
Cambiar
ActionDispatch::Response#content_type
para devolver el encabezado Content-Type tal cual. (Pull Request)Generar un
ArgumentError
si un parámetro de recurso contiene dos puntos. (Pull Request)Permitir que
ActionDispatch::SystemTestCase.driven_by
se llame con un bloque para definir capacidades específicas del navegador. (Pull Request)Agregar el middleware
ActionDispatch::HostAuthorization
que protege contra ataques de rebinding de DNS. (Pull Request)Permitir el uso de
parsed_body
enActionController::TestCase
. (Pull Request)Generar un
ArgumentError
cuando existen múltiples rutas raíz en el mismo contexto sin especificaciones de nombreas:
. (Pull Request)Permitir el uso de
#rescue_from
para manejar errores de análisis de parámetros. (Pull Request)Agregar
ActionController::Parameters#each_value
para iterar a través de los parámetros. (Pull Request)Codificar los nombres de archivo de Content-Disposition en
send_data
ysend_file
. (Pull Request)Exponer
ActionController::Parameters#each_key
. (Pull Request)Agregar metadatos de propósito y vencimiento dentro de las cookies firmadas/encriptadas para evitar copiar el valor de las cookies entre sí. (Pull Request)
Generar
ActionController::RespondToMismatchError
para invocaciones conflictivas derespond_to
. (Pull Request)Agregar una página de error explícita cuando falta una plantilla para un formato de solicitud. (Pull Request)
Introducir
ActionDispatch::DebugExceptions.register_interceptor
, una forma de conectarse a DebugExceptions y procesar la excepción antes de ser renderizada. (Pull Request)Mostrar solo un valor de encabezado de nonce de Content-Security-Policy por solicitud. (Pull Request)
Agregar un módulo específicamente para la configuración predeterminada de encabezados de Rails que se puede incluir explícitamente en los controladores. (Pull Request)
Agregar
#dig
aActionDispatch::Request::Session
. (Pull Request)
6 Action View
Consulte el registro de cambios para obtener cambios detallados.
6.1 Eliminaciones
Eliminar el ayudante
image_alt
obsoleto. (Commit)Eliminar un módulo vacío
RecordTagHelper
del cual la funcionalidad ya se ha movido a la gemarecord_tag_helper
. (Commit)
6.2 Obsolescencias
Obsoleto
ActionView::Template.finalize_compiled_template_methods
sin reemplazo. (Pull Request)Obsoleto
config.action_view.finalize_compiled_template_methods
sin reemplazo. (Pull Request)Obsoleto llamar a métodos de modelo privados desde el ayudante de vista
options_from_collection_for_select
. (Pull Request)
6.3 Cambios destacados
Limpiar la caché de Action View solo en desarrollo cuando hay cambios en los archivos, acelerando el modo de desarrollo. (Pull Request)
Mover todos los paquetes npm de Rails a un alcance
@rails
. (Pull Request)Aceptar solo formatos de tipos MIME registrados. (Pull Request, Pull Request)
Agregar asignaciones a la plantilla y renderizado parcial en la salida del servidor. (Pull Request)
Agregar una opción
year_format
a la etiquetadate_select
, lo que permite personalizar los nombres de los años. (Pull Request)Agregar una opción
nonce: true
para el ayudantejavascript_include_tag
para admitir la generación automática de nonce para una Política de Seguridad de Contenido. (Pull Request)Agregar una configuración
action_view.finalize_compiled_template_methods
para deshabilitar o habilitar los finalizadores deActionView::Template
. (Pull Request)Extraer la llamada JavaScript
confirm
a su propio método sobrescribible enrails_ujs
. (Pull Request)Agregar una opción de configuración
action_controller.default_enforce_utf8
para manejar la codificación UTF-8. Esto esfalse
por defecto. (Pull Request)Agregar soporte para el estilo de clave I18n en las etiquetas de envío de locales. (Pull Request)
7 Action Mailer
Consulte el registro de cambios para obtener cambios detallados.
7.1 Eliminaciones
7.2 Obsolescencias
Obsoleto
ActionMailer::Base.receive
a favor de Action Mailbox. (Commit)Obsoleto
DeliveryJob
yParameterized::DeliveryJob
a favor deMailDeliveryJob
. (Pull Request)
7.3 Cambios destacados
Agregar
MailDeliveryJob
para enviar correos regulares y parametrizados. (Pull Request)Permitir que los trabajos de entrega de correo personalizados funcionen con las afirmaciones de prueba de Action Mailer. (Pull Request)
Permitir especificar un nombre de plantilla para correos multipartes con bloques en lugar de solo usar el nombre de la acción. (Pull Request)
Agregar
perform_deliveries
a la carga útil de la notificacióndeliver.action_mailer
. (Pull Request)Mejorar el mensaje de registro cuando
perform_deliveries
es falso para indicar que se omitió el envío de correos electrónicos. (Pull Request)Permitir llamar a
assert_enqueued_email_with
sin bloque. (Pull Request)Realizar los trabajos de entrega de correo en cola en el bloque
assert_emails
. (Pull Request)Permitir que
ActionMailer::Base
anule los observadores e interceptores. (Pull Request)
8 Active Record
Consulte el registro de cambios para obtener cambios detallados.
8.1 Eliminaciones
Eliminar
#set_state
obsoleto del objeto de transacción. (Commit)Eliminar
#supports_statement_cache?
obsoleto de los adaptadores de base de datos. (Commit)Eliminar
#insert_fixtures
obsoleto de los adaptadores de base de datos. (Commit)Eliminar
ActiveRecord::ConnectionAdapters::SQLite3Adapter#valid_alter_table_type?
obsoleto. (Commit)Eliminar el soporte para pasar el nombre de la columna a
sum
cuando se pasa un bloque. (Commit)Eliminar el soporte para pasar el nombre de la columna a
count
cuando se pasa un bloque. (Commit)Eliminar el soporte para la delegación de métodos faltantes en una relación a Arel. (Commit)
Eliminar el soporte para la delegación de métodos faltantes en una relación a métodos privados de la clase. (Commit)
Eliminar el soporte para especificar un nombre de marca de tiempo para
#cache_key
. (Commit)Eliminar
ActiveRecord::Migrator.migrations_path=
. (Commit)Eliminar
expand_hash_conditions_for_aggregates
obsoleto. (Commit)
8.2 Obsolescencias
Obsoleto el uso de comparaciones de colación de sensibilidad de mayúsculas y minúsculas para el validador de unicidad. (Commit)
Obsoleto el uso de métodos de consulta a nivel de clase si el alcance del receptor se ha filtrado. (Pull Request)
Obsoleto
config.active_record.sqlite3.represent_boolean_as_integer
. (Commit)Obsoleto pasar
migrations_paths
aconnection.assume_migrated_upto_version
. (Commit)Obsoleto
ActiveRecord::Result#to_hash
en favor deActiveRecord::Result#to_a
. (Commit)Obsoletos los métodos en
DatabaseLimits
:column_name_length
,table_name_length
,columns_per_table
,indexes_per_table
,columns_per_multicolumn_index
,sql_query_length
yjoins_per_query
. (Commit)Obsoleto
update_attributes
/!
en favor deupdate
/!
. (Commit)
8.3 Cambios destacados
Aumentar la versión mínima de la gema
sqlite3
a 1.4. (Pull Request)Agregar
rails db:prepare
para crear una base de datos si no existe y ejecutar sus migraciones. (Pull Request)Agregar el callback
after_save_commit
como atajo paraafter_commit :hook, on: [ :create, :update ]
. (Pull Request)Agregar
ActiveRecord::Relation#extract_associated
para extraer registros asociados de una relación. (Pull Request)Agregar
ActiveRecord::Relation#annotate
para agregar comentarios SQL a las consultas de ActiveRecord::Relation. (Pull Request)Agregar soporte para establecer Optimizer Hints en bases de datos. (Pull Request)
Agregar métodos
insert_all
/insert_all!
/upsert_all
para realizar inserciones masivas. (Pull Request)Agregar
rails db:seed:replant
que trunca las tablas de cada base de datos para el entorno actual y carga las semillas. (Pull Request)Agregar
reselect
como método abreviado paraunscope(:select).select(fields)
. (Pull Request)Agregar ámbitos negativos para todos los valores de enumeración. (Pull Request)
Agregar
#destroy_by
y#delete_by
para eliminaciones condicionales. (Pull Request)Agregar la capacidad de cambiar automáticamente las conexiones de la base de datos. (Pull Request)
Agregar la capacidad de evitar escrituras en una base de datos durante la duración de un bloque. (Pull Request)
Agregar una API para cambiar conexiones y admitir múltiples bases de datos. (Pull Request)
Hacer que las marcas de tiempo con precisión sean la opción predeterminada para las migraciones. (Pull Request)
Admitir la opción
:size
para cambiar el tamaño de texto y blob en MySQL. (Pull Request)Establecer tanto la clave externa como las columnas de tipo externo en NULL para asociaciones polimórficas con estrategia
dependent: :nullify
. (Pull Request)Permitir que una instancia permitida de
ActionController::Parameters
se pase como argumento aActiveRecord::Relation#exists?
. (Pull Request)Agregar soporte en
#where
para rangos infinitos introducidos en Ruby 2.6. (Pull Request)Hacer que
ROW_FORMAT=DYNAMIC
sea una opción de creación de tabla predeterminada para MySQL. (Pull Request)Agregar la capacidad de desactivar los ámbitos generados por
ActiveRecord.enum
. (Pull Request)Hacer que el orden implícito sea configurable para una columna. (Pull Request)
Aumentar la versión mínima de PostgreSQL a 9.3, eliminando el soporte para 9.1 y 9.2. (Pull Request)
Hacer que los valores de una enumeración sean congelados, generando un error al intentar modificarlos. (Pull Request)
Hacer que el SQL de los errores
ActiveRecord::StatementInvalid
sea su propia propiedad de error e incluir los enlaces SQL como una propiedad de error separada. (Pull Request)Agregar una opción
:if_not_exists
acreate_table
. (Pull Request)Agregar soporte para múltiples bases de datos a
rails db:schema:cache:dump
yrails db:schema:cache:clear
. (Pull Request)Agregar soporte para configuraciones de hash y URL en el hash de base de datos de
ActiveRecord::Base.connected_to
. (Pull Request)Agregar soporte para expresiones predeterminadas e índices de expresiones para MySQL. (Pull Request)
Agregar una opción
index
para los ayudantes de migraciónchange_table
. (Pull Request)Corregir la reversión de
transaction
para migraciones. Anteriormente, los comandos dentro de unatransaction
en una migración revertida se ejecutaban sin invertir. Este cambio soluciona eso. (Pull Request)Permitir que
ActiveRecord::Base.configurations=
se establezca con un hash simbolizado. (Pull Request)Corregir la actualización de la caché del contador solo si el registro se guarda realmente. (Pull Request)
Agregar soporte de índices de expresión para el adaptador SQLite. (Pull Request)
Permitir que las subclases redefinan los callbacks de autosave para los registros asociados. (Pull Request)
Aumentar la versión mínima de MySQL a 5.5.8. (Pull Request)
Usar el conjunto de caracteres utf8mb4 de forma predeterminada en MySQL. (Pull Request)
Agregar la capacidad de filtrar datos sensibles en
#inspect
. (Pull Request, Pull Request)Cambiar
ActiveRecord::Base.configurations
para devolver un objeto en lugar de un hash. (Pull Request)Agregar configuración de base de datos para deshabilitar bloqueos de asesoramiento. (Pull Request)
Actualizar el método
alter_table
del adaptador SQLite3 para restaurar las claves externas. (Pull Request)Permitir que la opción
:to_table
deremove_foreign_key
sea invertible. (Pull Request)Corregir el valor predeterminado para los tipos de tiempo de MySQL con precisión especificada. (Pull Request)
Corregir la opción
touch
para comportarse de manera consistente con el métodoPersistence#touch
. (Pull Request)Generar una excepción para definiciones de columna duplicadas en Migrations. (Pull Request)
Aumentar la versión mínima de SQLite a 3.8. (Pull Request)
Corregir que los registros principales no se guarden con registros secundarios duplicados. (Pull Request)
Asegurar que
Associations::CollectionAssociation#size
yAssociations::CollectionAssociation#empty?
usen los ids de asociación cargados si están presentes. (Pull Request)Agregar soporte para precargar asociaciones de asociaciones polimórficas cuando no todos los registros tienen las asociaciones solicitadas. (Commit)
Agregar el método
touch_all
aActiveRecord::Relation
. (Pull Request)Agregar el predicado
ActiveRecord::Base.base_class?
. (Pull Request)Agregar opciones de prefijo/sufijo personalizadas a
ActiveRecord::Store.store_accessor
. (Pull Request)Agregar
ActiveRecord::Base.create_or_find_by
/!
para manejar la condición de carrera SELECT/INSERT enActiveRecord::Base.find_or_create_by
/!
aprovechando las restricciones únicas en la base de datos. (Pull Request)Agregar
Relation#pick
como atajo para obtener un solo valor. (Pull Request)
9 Active Storage
Consulte el Changelog para obtener cambios detallados.
9.1 Eliminaciones
9.2 Deprecaciones
Deprecar
config.active_storage.queue
a favor deconfig.active_storage.queues.analysis
yconfig.active_storage.queues.purge
. (Pull Request)Deprecar
ActiveStorage::Downloading
a favor deActiveStorage::Blob#open
. (Commit)Deprecar el uso de
mini_magick
directamente para generar variantes de imágenes a favor deimage_processing
. (Commit)Deprecar
:combine_options
en el transformador de ImageProcessing de Active Storage sin reemplazo. (Commit)
9.3 Cambios destacados
Agregar soporte para generar variantes de imágenes BMP. (Pull Request)
Agregar soporte para generar variantes de imágenes TIFF. (Pull Request)
Agregar soporte para generar variantes de imágenes JPEG progresivas. (Pull Request)
Agregar
ActiveStorage.routes_prefix
para configurar las rutas generadas por Active Storage. (Pull Request)Generar una respuesta 404 Not Found en
ActiveStorage::DiskController#show
cuando el archivo solicitado falta en el servicio de disco. (Pull Request)Lanzar
ActiveStorage::FileNotFoundError
cuando falta el archivo solicitado paraActiveStorage::Blob#download
yActiveStorage::Blob#open
. (Pull Request)Agregar una clase genérica
ActiveStorage::Error
de la cual heredan las excepciones de Active Storage. (Commit)Persistir los archivos cargados asignados a un registro en el almacenamiento cuando el registro se guarda en lugar de hacerlo inmediatamente. (Pull Request)
Opcionalmente reemplazar archivos existentes en lugar de agregar nuevos al asignar a una colección de adjuntos (como en
@user.update!(images: [ … ])
). Usarconfig.active_storage.replace_on_assign_to_many
para controlar este comportamiento. (Pull Request, Pull Request)Agregar la capacidad de reflejar los adjuntos definidos utilizando el mecanismo de reflexión existente de Active Record. (Pull Request)
Agregar
ActiveStorage::Blob#open
, que descarga un blob a un tempfile en disco y devuelve el tempfile. (Commit)Soporte para descargas en streaming desde Google Cloud Storage. Requiere la versión 1.11+ de la gema
google-cloud-storage
. (Pull Request)Usar la gema
image_processing
para las variantes de Active Storage. Esto reemplaza el uso demini_magick
directamente. (Pull Request)
10 Active Model
Consulte el Changelog para obtener cambios detallados.
10.1 Eliminaciones
10.2 Deprecaciones
10.3 Cambios destacados
Agregar una opción de configuración para personalizar el formato de
ActiveModel::Errors#full_message
. (Pull Request)Agregar soporte para configurar el nombre del atributo para
has_secure_password
. (Pull Request)Agregar el método
#slice!
aActiveModel::Errors
. (Pull Request)Agregar
ActiveModel::Errors#of_kind?
para verificar la presencia de un error específico. (Pull Request)Corregir el método
ActiveModel::Serializers::JSON#as_json
para los timestamps. (Pull Request)Corregir el validador de numericality para seguir utilizando el valor antes de la conversión de tipo, excepto en Active Record. (Pull Request)
Corregir la validación de igualdad de numericality de
BigDecimal
yFloat
al convertir aBigDecimal
en ambos extremos de la validación. (Pull Request)Corregir el valor del año al convertir un hash de tiempo multiparamétrico. (Pull Request)
Convertir los símbolos booleanos falsos en un atributo booleano como falso. (Pull Request)
Devolver la fecha correcta al convertir parámetros en
value_from_multiparameter_assignment
paraActiveModel::Type::Date
. (Pull Request)Retroceder al idioma principal antes de retroceder al espacio de nombres
:errors
al buscar las traducciones de errores. (Pull Request)
11 Active Support
Consulte el Changelog para obtener cambios detallados.
11.1 Eliminaciones
Eliminar el método deprecado
#acronym_regex
deInflections
. (Commit)Eliminar el método deprecado
Module#reachable?
. (Commit)Eliminar
Kernel#`
sin reemplazo. (Pull Request)
11.2 Deprecaciones
Deprecar el uso de argumentos enteros negativos para
String#first
yString#last
. (Pull Request)Deprecar
ActiveSupport::Multibyte::Unicode#downcase/upcase/swapcase
en favor deString#downcase/upcase/swapcase
. (Pull Request)Deprecar
ActiveSupport::Multibyte::Unicode#normalize
yActiveSupport::Multibyte::Chars#normalize
en favor deString#unicode_normalize
. (Pull Request)Deprecar
ActiveSupport::Multibyte::Chars.consumes?
en favor deString#is_utf8?
. (Pull Request)Deprecar
ActiveSupport::Multibyte::Unicode#pack_graphemes(array)
yActiveSupport::Multibyte::Unicode#unpack_graphemes(string)
en favor dearray.flatten.pack("U*")
ystring.scan(/\X/).map(&:codepoints)
, respectivamente. (Pull Request)
11.3 Cambios destacados
Agregar soporte para pruebas en paralelo. (Pull Request)
Asegurarse de que
String#strip_heredoc
preserve la congelación de las cadenas. (Pull Request)Agregar
String#truncate_bytes
para truncar una cadena a un tamaño máximo en bytes sin romper caracteres multibyte o grupos de grafemas. (Pull Request)Agregar la opción
private
al métododelegate
para delegar a métodos privados. Esta opción aceptatrue/false
como valor. (Pull Request)Agregar soporte para traducciones a través de I18n para
ActiveSupport::Inflector#ordinal
yActiveSupport::Inflector#ordinalize
. (Pull Request)Agregar los métodos
before?
yafter?
aDate
,DateTime
,Time
yTimeWithZone
. (Pull Request)Corregir el error donde
URI.unescape
fallaría con una entrada de caracteres mixtos Unicode/escapados. (Pull Request)Corregir el error donde
ActiveSupport::Cache
inflaría masivamente el tamaño de almacenamiento cuando la compresión estaba habilitada. (Pull Request)Almacenamiento en caché de Redis:
delete_matched
ya no bloquea el servidor de Redis. (Pull Request)Corregir el error donde
ActiveSupport::TimeZone.all
fallaría cuando faltara datos de tzinfo para cualquier zona horaria definida enActiveSupport::TimeZone::MAPPING
. (Pull Request)Agregar
Enumerable#index_with
, que permite crear un hash a partir de un enumerable con el valor de un bloque pasado o un argumento predeterminado. (Pull Request)Permitir que los métodos
Range#===
yRange#cover?
funcionen con un argumento de tipoRange
. (Pull Request)Soporte para la expiración de claves en las operaciones
increment/decrement
de RedisCacheStore. (Pull Request)Agregar características de tiempo de CPU, tiempo de inactividad y asignaciones a los eventos del suscriptor de registro. (Pull Request)
Agregar soporte para objetos de evento al sistema de notificación de Active Support. (Pull Request)
Agregar soporte para no almacenar en caché entradas
nil
mediante la introducción de la nueva opciónskip_nil
paraActiveSupport::Cache#fetch
. (Pull Request)Agregar el método
Array#extract!
que elimina y devuelve los elementos para los cuales el bloque devuelve un valor verdadero. (Pull Request)Mantener una cadena segura para HTML después de cortarla. (Pull Request)
Agregar soporte para rastrear la carga automática constante a través del registro. (Commit)
Definir
unfreeze_time
como un alias detravel_back
. (Pull Request)Cambiar
ActiveSupport::TaggedLogging.new
para devolver una nueva instancia de registro en lugar de modificar la recibida como argumento. (Pull Request)Tratar los métodos
#delete_prefix
,#delete_suffix
y#unicode_normalize
como métodos no seguros para HTML. (Pull Request)Corregir el error donde
#without
paraActiveSupport::HashWithIndifferentAccess
fallaría con argumentos de símbolo. (Pull Request)Renombrar
Module#parent
,Module#parents
yModule#parent_name
amodule_parent
,module_parents
ymodule_parent_name
. (Pull Request)Agregar
ActiveSupport::ParameterFilter
. (Pull Request)Corregir el problema donde la duración se redondeaba a un segundo completo cuando se agregaba un número decimal a la duración. (Pull Request)
Hacer que
#to_options
sea un alias de#symbolize_keys
enActiveSupport::HashWithIndifferentAccess
. (Pull Request)Ya no generar una excepción si el mismo bloque se incluye varias veces en un Concern. (Pull Request)
Preservar el orden de las claves pasadas a
ActiveSupport::CacheStore#fetch_multi
. (Pull Request)Corregir
String#safe_constantize
para que no lance unLoadError
para referencias constantes escritas incorrectamente. (Pull Request)Agregar
Hash#deep_transform_values
yHash#deep_transform_values!
. (Commit)Agregar
ActiveSupport::HashWithIndifferentAccess#assoc
. (Pull Request)Agregar el callback
before_reset
aCurrentAttributes
y definirafter_reset
como un alias deresets
para mayor simetría. (Pull Request)Revisar
ActiveSupport::Notifications.unsubscribe
para manejar correctamente suscriptores de expresiones regulares u otros patrones múltiples. (Pull Request)Agregar un nuevo mecanismo de carga automática utilizando Zeitwerk. (Commit)
Agregar
Array#including
yEnumerable#including
para ampliar convenientemente una colección. (Commit)Renombrar
Array#without
yEnumerable#without
aArray#excluding
yEnumerable#excluding
. Los nombres antiguos de los métodos se mantienen como alias. (Commit)Agregar soporte para suministrar
locale
atransliterate
yparameterize
. (Pull Request)Corregir
Time#advance
para que funcione con fechas anteriores a 1001-03-07. (Pull Request)Actualizar
ActiveSupport::Notifications::Instrumenter#instrument
para permitir no pasar un bloque. (Pull Request)Usar referencias débiles en el rastreador de descendientes para permitir que las subclases anónimas sean recolectadas por el recolector de basura. (Pull Request)
Llamar a los métodos de prueba con el método
with_info_handler
para permitir que el complemento minitest-hooks funcione. (Commit)Preservar el estado de
html_safe?
enActiveSupport::SafeBuffer#*
. (Pull Request)
12 Active Job
Consulte el registro de cambios para obtener cambios detallados.
12.1 Eliminaciones
- Eliminar el soporte para la gema Qu. (Pull Request)
12.2 Deprecaciones
12.3 Cambios destacados
Agregar soporte para serializadores personalizados para los argumentos de Active Job. (Pull Request)
Agregar soporte para ejecutar trabajos activos en la zona horaria en la que se encolaron. (Pull Request)
Permitir pasar múltiples excepciones a
retry_on
/discard_on
. (Commit)Permitir llamar a
assert_enqueued_with
yassert_enqueued_email_with
sin un bloque. (Pull Request)Envolver las notificaciones de
enqueue
yenqueue_at
en el callbackaround_enqueue
en lugar del callbackafter_enqueue
. (Pull Request)Permitir llamar a
perform_enqueued_jobs
sin un bloque. (Pull Request)Permitir llamar a
assert_performed_with
sin un bloque. (Pull Request)Agregar la opción
:queue
a las aserciones y ayudantes de trabajos. (Pull Request)Agregar ganchos a Active Job alrededor de reintentos y descartes. (Pull Request)
Agregar una forma de probar un subconjunto de argumentos al realizar trabajos. (Pull Request)
Incluir argumentos deserializados en los trabajos devueltos por los ayudantes de prueba de Active Job. (Pull Request)
Permitir que los ayudantes de aserción de Active Job acepten un Proc para la palabra clave
only
. (Pull Request)Eliminar microsegundos y nanosegundos de los argumentos del trabajo en los ayudantes de aserción. (Pull Request)
13 Guías de Ruby on Rails
Consulte el Registro de cambios para obtener cambios detallados.
13.1 Cambios destacados
Agregar guía de Múltiples bases de datos con Active Record. (Pull Request)
Agregar una sección sobre solución de problemas de carga automática de constantes. (Commit)
Agregar guía básica de Action Mailbox. (Pull Request)
Agregar descripción general de Action Text. (Pull Request)
14 Créditos
Consulte la lista completa de colaboradores de Rails para ver a las muchas personas que pasaron muchas horas haciendo de Rails el marco estable y robusto que es. Felicitaciones a todos ellos.
Comentarios
Se te anima a ayudar a mejorar la calidad de esta guía.
Por favor, contribuye si encuentras algún error tipográfico o factual. Para empezar, puedes leer nuestra contribución a la documentación sección.
También puedes encontrar contenido incompleto o desactualizado. Por favor, añade cualquier documentación faltante para main. Asegúrate de revisar Edge Guides primero para verificar si los problemas ya están resueltos o no en la rama principal. Consulta las Directrices de las Guías de Ruby on Rails para el estilo y las convenciones.
Si por alguna razón encuentras algo que corregir pero no puedes solucionarlo tú mismo, por favor abre un problema.
Y por último, cualquier tipo de discusión sobre la documentación de Ruby on Rails es muy bienvenida en el Foro oficial de Ruby on Rails.