1 Mise à niveau vers Rails 6.0
Si vous mettez à niveau une application existante, il est conseillé d'avoir une bonne couverture de tests avant de commencer. Vous devriez également d'abord passer à Rails 5.2 au cas où vous ne l'auriez pas déjà fait et vous assurer que votre application fonctionne toujours comme prévu avant de tenter une mise à jour vers Rails 6.0. Une liste de choses à surveiller lors de la mise à niveau est disponible dans le guide Mise à niveau de Ruby on Rails.
2 Fonctionnalités majeures
2.1 Action Mailbox
Action Mailbox vous permet de router les e-mails entrants vers des boîtes aux lettres similaires à des contrôleurs. Vous pouvez en savoir plus sur Action Mailbox dans le guide Action Mailbox Basics.
2.2 Action Text
Action Text apporte du contenu et de l'édition de texte enrichi à Rails. Il inclut l'éditeur Trix qui gère tout, de la mise en forme aux liens en passant par les citations, les listes, les images intégrées et les galeries. Le contenu texte enrichi généré par l'éditeur Trix est enregistré dans son propre modèle RichText qui est associé à n'importe quel modèle Active Record existant dans l'application. Toutes les images intégrées (ou autres pièces jointes) sont automatiquement stockées à l'aide d'Active Storage et associées au modèle RichText inclus.
Vous pouvez en savoir plus sur Action Text dans le guide Action Text Overview.
2.3 Tests parallèles
Les tests parallèles vous permettent de paralléliser votre suite de tests. Bien que la création de processus soit la méthode par défaut, le threading est également pris en charge. L'exécution de tests en parallèle réduit le temps nécessaire pour exécuter l'ensemble de votre suite de tests.
2.4 Tests Action Cable
Les outils de test Action Cable vous permettent de tester votre fonctionnalité Action Cable à n'importe quel niveau : connexions, canaux, diffusions.
3 Railties
Veuillez vous référer au [journal des modifications][railties] pour des changements détaillés.
3.1 Suppressions
Supprimer l'aide
after_bundle
obsolète à l'intérieur des modèles de plugins. (Commit)Supprimer le support obsolète de
config.ru
qui utilise la classe d'application comme argument derun
. (Commit)Supprimer l'argument obsolète
environment
des commandes Rails. (Commit)Supprimer la méthode obsolète
capify!
dans les générateurs et les modèles. (Commit)Supprimer
config.secret_token
obsolète. (Commit)
3.2 Dépréciations
Déprécier le passage du nom du serveur Rack en tant qu'argument normal à
rails server
. (Pull Request)Déprécier la prise en charge de l'utilisation de l'environnement
HOST
pour spécifier l'adresse IP du serveur. (Pull Request)Déprécier l'accès aux hachages retournés par
config_for
avec des clés non symboliques. (Pull Request)
3.3 Changements notables
Ajouter une option explicite
--using
ou-u
pour spécifier le serveur pour la commanderails server
. (Pull Request)Ajouter la possibilité de voir la sortie de
rails routes
au format étendu. (Pull Request)Exécuter la tâche de base de données de seed en utilisant l'adaptateur Active Job en ligne. (Pull Request)
Ajouter une commande
rails db:system:change
pour changer la base de données de l'application. (Pull Request)Ajouter la commande
rails test:channels
pour tester uniquement les canaux Action Cable. (Pull Request)Introduire une protection contre les attaques de rebinding DNS. (Demande de tirage)
Ajouter la possibilité d'annuler en cas d'échec lors de l'exécution des commandes de génération. (Demande de tirage)
Faire de Webpacker le compilateur JavaScript par défaut pour Rails 6. (Demande de tirage)
Ajouter la prise en charge de plusieurs bases de données pour la commande
rails db:migrate:status
. (Demande de tirage)Ajouter la possibilité d'utiliser des chemins de migration différents à partir de plusieurs bases de données dans les générateurs. (Demande de tirage)
Ajouter la prise en charge des informations d'identification multi-environnement. (Demande de tirage)
Définir
null_store
comme cache store par défaut dans l'environnement de test. (Demande de tirage)
4 Action Cable
Veuillez vous référer au journal des modifications pour des changements détaillés.
4.1 Suppressions
- Remplacer
ActionCable.startDebugging()
etActionCable.stopDebugging()
parActionCable.logger.enabled
. (Demande de tirage)
4.2 Dépréciations
- Il n'y a pas de dépréciations pour Action Cable dans Rails 6.0.
4.3 Changements notables
Ajouter la prise en charge de l'option
channel_prefix
pour les adaptateurs de souscription PostgreSQL danscable.yml
. (Demande de tirage)Autoriser la transmission d'une configuration personnalisée à
ActionCable::Server::Base
. (Demande de tirage)Ajouter les hooks de chargement
:action_cable_connection
et:action_cable_channel
. (Demande de tirage)Ajouter
Channel::Base#broadcast_to
etChannel::Base.broadcasting_for
. (Demande de tirage)Fermer une connexion lors de l'appel de
reject_unauthorized_connection
à partir d'uneActionCable::Connection
. (Demande de tirage)Convertir le package JavaScript Action Cable de CoffeeScript à ES2015 et publier le code source dans la distribution npm. (Demande de tirage)
Déplacer la configuration de l'adaptateur WebSocket et de l'adaptateur de journalisation des propriétés de
ActionCable
versActionCable.adapters
. (Demande de tirage)Ajouter une option
id
à l'adaptateur Redis pour distinguer les connexions Redis d'Action Cable. (Demande de tirage)
5 Action Pack
Veuillez vous référer au journal des modifications pour des changements détaillés.
5.1 Suppressions
Supprimer l'aide
fragment_cache_key
obsolète au profit decombined_fragment_cache_key
. (Commit)Supprimer les méthodes obsolètes dans
ActionDispatch::TestResponse
:#success?
au profit de#successful?
,#missing?
au profit de#not_found?
,#error?
au profit de#server_error?
. (Commit)
5.2 Dépréciations
Déprécier
ActionDispatch::Http::ParameterFilter
au profit deActiveSupport::ParameterFilter
. (Demande de tirage)Déprécier
force_ssl
au niveau du contrôleur au profit deconfig.force_ssl
. (Demande de tirage)
5.3 Changements notables
Modifier
ActionDispatch::Response#content_type
pour renvoyer le Content-Type de l'en-tête tel quel. (Demande de tirage)Lever une
ArgumentError
si un paramètre de ressource contient un deux-points. (Demande de tirage)Autoriser l'appel de
ActionDispatch::SystemTestCase.driven_by
avec un bloc pour définir des capacités spécifiques du navigateur. (Demande de tirage)Ajouter le middleware
ActionDispatch::HostAuthorization
qui protège contre les attaques de rebinding DNS. (Demande de tirage)Autoriser l'utilisation de
parsed_body
dansActionController::TestCase
. (Demande de tirage)Lever une
ArgumentError
lorsqu'il existe plusieurs routes racines dans le même contexte sans spécifications de nomas:
. (Demande de tirage)Autoriser l'utilisation de
#rescue_from
pour gérer les erreurs d'analyse des paramètres. (Demande de tirage)Ajouter
ActionController::Parameters#each_value
pour itérer à travers les paramètres. (Demande de tirage)Encoder les noms de fichiers Content-Disposition sur
send_data
etsend_file
. (Demande de tirage)Exposer
ActionController::Parameters#each_key
. (Demande de tirage)Ajouter des métadonnées de but et d'expiration à l'intérieur des cookies signés/chiffrés pour empêcher la copie de la valeur des cookies dans d'autres. (Demande de tirage)
Lever
ActionController::RespondToMismatchError
pour les invocationsrespond_to
conflictuelles. (Demande de tirage)Ajouter une page d'erreur explicite lorsque le modèle d'une demande est manquant pour un format donné. (Demande de tirage)
Introduire
ActionDispatch::DebugExceptions.register_interceptor
, une façon de se brancher sur DebugExceptions et de traiter l'exception avant son rendu. (Demande de tirage)Ne produire qu'une seule valeur d'en-tête Content-Security-Policy nonce par demande. (Demande de tirage)
Ajouter un module spécifiquement pour la configuration par défaut des en-têtes Rails qui peut être inclus explicitement dans les contrôleurs. (Demande de tirage)
Ajoutez
#dig
àActionDispatch::Request::Session
. (Pull Request)
6 Action View
Veuillez vous référer au [Changelog][action-view] pour des changements détaillés.
6.1 Suppressions
Supprimez l'aide
image_alt
obsolète. (Commit)Supprimez un module
RecordTagHelper
vide dont la fonctionnalité a déjà été déplacée vers la gemmerecord_tag_helper
. (Commit)
6.2 Dépréciations
Dépréciez
ActionView::Template.finalize_compiled_template_methods
sans remplacement. (Pull Request)Dépréciez
config.action_view.finalize_compiled_template_methods
sans remplacement. (Pull Request)Dépréciez l'appel de méthodes de modèle privées depuis l'aide de vue
options_from_collection_for_select
. (Pull Request)
6.3 Changements notables
Effacez le cache d'Action View uniquement en cas de modifications de fichiers, accélérant le mode de développement. (Pull Request)
Déplacez tous les packages npm de Rails dans une portée
@rails
. (Pull Request)N'acceptez que les formats des types MIME enregistrés. (Pull Request, Pull Request)
Ajoutez des allocations à la sortie du serveur pour le rendu des modèles et des partiels. (Pull Request)
Ajoutez une option
year_format
à la balisedate_select
, permettant de personnaliser les noms des années. (Pull Request)Ajoutez une option
nonce: true
pour l'aidejavascript_include_tag
afin de prendre en charge la génération automatique de nonce pour une politique de sécurité du contenu. (Pull Request)Ajoutez une configuration
action_view.finalize_compiled_template_methods
pour désactiver ou activer les finaliseurs deActionView::Template
. (Pull Request)Extrayez l'appel JavaScript
confirm
dans sa propre méthode pouvant être surchargée dansrails_ujs
. (Pull Request)Ajoutez une option de configuration
action_controller.default_enforce_utf8
pour gérer l'encodage UTF-8. Par défaut, cette option est àfalse
. (Pull Request)Ajoutez la prise en charge du style de clé I18n pour les clés de locale dans les balises de soumission. (Pull Request)
7 Action Mailer
Veuillez vous référer au [Changelog][action-mailer] pour des changements détaillés.
7.1 Suppressions
7.2 Dépréciations
Dépréciez
ActionMailer::Base.receive
en faveur d'Action Mailbox. (Commit)Dépréciez
DeliveryJob
etParameterized::DeliveryJob
en faveur deMailDeliveryJob
. (Pull Request)
7.3 Changements notables
Ajoutez
MailDeliveryJob
pour envoyer des e-mails réguliers et paramétrés. (Pull Request)Permettez aux emplois d'envoi d'e-mails personnalisés de fonctionner avec les assertions de test d'Action Mailer. (Pull Request)
Permettez de spécifier un nom de modèle pour les e-mails multipart avec des blocs au lieu de n'utiliser que le nom de l'action. (Pull Request)
Ajoutez
perform_deliveries
à la charge utile de la notificationdeliver.action_mailer
. (Pull Request)Améliorez le message de journalisation lorsque
perform_deliveries
est faux pour indiquer que l'envoi des e-mails a été ignoré. (Pull Request)Permettez d'appeler
assert_enqueued_email_with
sans bloc. (Pull Request)Effectuez les emplois d'envoi d'e-mails en file d'attente dans le bloc
assert_emails
. (Pull Request)Permettez à
ActionMailer::Base
de désenregistrer les observateurs et intercepteurs. (Pull Request)
8 Active Record
Veuillez vous référer au [Changelog][active-record] pour des changements détaillés.
8.1 Suppressions
Supprimez
#set_state
obsolète de l'objet de transaction. (Commit)Supprimez
#supports_statement_cache?
obsolète des adaptateurs de base de données. (Commit)Supprimez
#insert_fixtures
obsolète des adaptateurs de base de données. (Commit)Supprimez
ActiveRecord::ConnectionAdapters::SQLite3Adapter#valid_alter_table_type?
obsolète. (Commit)Supprimez la prise en charge de la spécification du nom de colonne pour
#cache_key
. (Commit)Supprimez
ActiveRecord::Migrator.migrations_path=
. (Commit)Supprimer
expand_hash_conditions_for_aggregates
obsolète. (Commit)
8.2 Obsolescence
Obsolescence des comparaisons de collation avec sensibilité à la casse pour le validateur d'unicité. (Commit)
Obsolescence de l'utilisation des méthodes de requête de niveau de classe si la portée du récepteur a fuité. (Pull Request)
Obsolescence de
config.active_record.sqlite3.represent_boolean_as_integer
. (Commit)Obsolescence du passage de
migrations_paths
àconnection.assume_migrated_upto_version
. (Commit)Obsolescence de
ActiveRecord::Result#to_hash
au profit deActiveRecord::Result#to_a
. (Commit)Obsolescence des méthodes dans
DatabaseLimits
:column_name_length
,table_name_length
,columns_per_table
,indexes_per_table
,columns_per_multicolumn_index
,sql_query_length
, etjoins_per_query
. (Commit)Obsolescence de
update_attributes
/!
au profit deupdate
/!
. (Commit)
8.3 Changements notables
Augmentation de la version minimale de la gemme
sqlite3
à 1.4. (Pull Request)Ajout de
rails db:prepare
pour créer une base de données si elle n'existe pas, et exécuter ses migrations. (Pull Request)Ajout du rappel
after_save_commit
comme raccourci pourafter_commit :hook, on: [ :create, :update ]
. (Pull Request)Ajout de
ActiveRecord::Relation#extract_associated
pour extraire les enregistrements associés d'une relation. (Pull Request)Ajout de
ActiveRecord::Relation#annotate
pour ajouter des commentaires SQL aux requêtes d'ActiveRecord::Relation. (Pull Request)Ajout de la prise en charge de l'ajout d'indices d'optimisation sur les bases de données. (Pull Request)
Ajout des méthodes
insert_all
/insert_all!
/upsert_all
pour effectuer des insertions en bloc. (Pull Request)Ajout de
rails db:seed:replant
qui tronque les tables de chaque base de données pour l'environnement actuel et charge les données de départ. (Pull Request)Ajout de la méthode
reselect
, qui est un raccourci pourunscope(:select).select(fields)
. (Pull Request)Ajout de scopes négatifs pour toutes les valeurs d'énumération. (Pull Request)
Ajout de
#destroy_by
et#delete_by
pour les suppressions conditionnelles. (Pull Request)Ajout de la possibilité de basculer automatiquement entre les connexions de base de données. (Pull Request)
Ajout de la possibilité d'empêcher l'écriture dans une base de données pendant la durée d'un bloc. (Pull Request)
Ajout d'une API pour basculer les connexions afin de prendre en charge plusieurs bases de données. (Pull Request)
Les horodatages avec précision deviennent la valeur par défaut pour les migrations. (Pull Request)
Prise en charge de l'option
:size
pour modifier la taille du texte et du blob dans MySQL. (Pull Request)Définir à NULL à la fois la clé étrangère et les colonnes de type étranger pour les associations polymorphes avec la stratégie
dependent: :nullify
. (Pull Request)Autoriser une instance autorisée de
ActionController::Parameters
à être passée en argument àActiveRecord::Relation#exists?
. (Pull Request)Prise en charge de
#where
pour les plages infinies introduites dans Ruby 2.6. (Pull Request)Faire de
ROW_FORMAT=DYNAMIC
une option de création de table par défaut pour MySQL. (Pull Request)Ajout de l'option
:if_not_exists
àcreate_table
. (Pull Request)Ajout de la prise en charge de plusieurs bases de données à
rails db:schema:cache:dump
etrails db:schema:cache:clear
. (Pull Request)Ajout de la prise en charge des configurations de hachage et d'URL dans le hachage de base de données de
ActiveRecord::Base.connected_to
. (Pull Request)Ajout de la prise en charge des expressions par défaut et des index d'expression pour MySQL. (Pull Request)
Ajout d'une option
index
pour les helpers de migrationchange_table
. (Pull Request)Correction de la réversion de
transaction
pour les migrations. Auparavant, les commandes à l'intérieur d'unetransaction
dans une migration révoquée s'exécutaient sans être inversées. Ce changement corrige cela. (Pull Request)Autoriser la configuration de
ActiveRecord::Base.configurations=
avec un hash symbolisé. (Demande de tirage)Corriger le cache de compteur pour ne mettre à jour que si l'enregistrement est réellement enregistré. (Demande de tirage)
Ajouter la prise en charge des index d'expression pour l'adaptateur SQLite. (Demande de tirage)
Permettre aux sous-classes de redéfinir les rappels autosave pour les enregistrements associés. (Demande de tirage)
Augmenter la version minimale de MySQL à 5.5.8. (Demande de tirage)
Utiliser l'ensemble de caractères utf8mb4 par défaut dans MySQL. (Demande de tirage)
Ajouter la possibilité de filtrer les données sensibles dans
#inspect
. (Demande de tirage, Demande de tirage)Changer
ActiveRecord::Base.configurations
pour renvoyer un objet au lieu d'un hash. (Demande de tirage)Ajouter une configuration de base de données pour désactiver les verrous consultatifs. (Demande de tirage)
Mettre à jour la méthode
alter_table
de l'adaptateur SQLite3 pour restaurer les clés étrangères. (Demande de tirage)Permettre à l'option
:to_table
deremove_foreign_key
d'être inversible. (Demande de tirage)Corriger la valeur par défaut pour les types de temps MySQL avec une précision spécifiée. (Demande de tirage)
Corriger l'option
touch
pour se comporter de manière cohérente avec la méthodePersistence#touch
. (Demande de tirage)Lever une exception pour les définitions de colonnes en double dans les migrations. (Demande de tirage)
Augmenter la version minimale de SQLite à 3.8. (Demande de tirage)
Empêcher les enregistrements parent d'être enregistrés avec des enregistrements enfants en double. (Demande de tirage)
S'assurer que
Associations::CollectionAssociation#size
etAssociations::CollectionAssociation#empty?
utilisent les identifiants d'association chargés s'ils sont présents. (Demande de tirage)Ajouter la prise en charge du préchargement des associations des associations polymorphiques lorsque tous les enregistrements n'ont pas les associations demandées. (Commit)
Ajouter la méthode
touch_all
àActiveRecord::Relation
. (Demande de tirage)Ajouter le prédicat
ActiveRecord::Base.base_class?
. (Demande de tirage)Ajouter des options de préfixe/suffixe personnalisées à
ActiveRecord::Store.store_accessor
. (Demande de tirage)Ajouter
ActiveRecord::Base.create_or_find_by
/!
pour gérer la condition de course SELECT/INSERT dansActiveRecord::Base.find_or_create_by
/!
en s'appuyant sur les contraintes uniques dans la base de données. (Demande de tirage)Ajouter
Relation#pick
comme raccourci pour les plucks à valeur unique. (Demande de tirage)
9 Stockage actif
Veuillez vous référer au journal des modifications pour des changements détaillés.
9.1 Suppressions
9.2 Dépréciations
Déprécier
config.active_storage.queue
au profit deconfig.active_storage.queues.analysis
etconfig.active_storage.queues.purge
. (Demande de tirage)Déprécier
ActiveStorage::Downloading
au profit deActiveStorage::Blob#open
. (Commit)Déprécier l'utilisation de
mini_magick
directement pour générer des variantes d'images au profit deimage_processing
. (Commit)Déprécier
:combine_options
dans le transformateur ImageProcessing de Active Storage sans remplacement. (Commit)
9.3 Changements notables
Ajouter la prise en charge de la génération de variantes d'images BMP. (Demande de tirage)
Ajouter la prise en charge de la génération de variantes d'images TIFF. (Demande de tirage)
Ajouter la prise en charge de la génération de variantes d'images JPEG progressives. (Demande de tirage)
Ajouter
ActiveStorage.routes_prefix
pour configurer les routes générées par Active Storage. (Demande de tirage)Générer une réponse 404 Not Found sur
ActiveStorage::DiskController#show
lorsque le fichier demandé est manquant dans le service de disque. (Demande de tirage)Lever
ActiveStorage::FileNotFoundError
lorsque le fichier demandé est manquant pourActiveStorage::Blob#download
etActiveStorage::Blob#open
. (Demande de tirage)Ajouter une classe générique
ActiveStorage::Error
dont les exceptions de Active Storage héritent. (Commit)Enregistrer les fichiers téléchargés assignés à un enregistrement dans le stockage lorsque l'enregistrement est enregistré au lieu de le faire immédiatement. (Demande de tirage)
Remplacer éventuellement les fichiers existants au lieu de les ajouter lors de l'assignation à une collection de pièces jointes (comme dans
@user.update!(images: [ … ])
). Utiliserconfig.active_storage.replace_on_assign_to_many
pour contrôler ce comportement. (Demande de tirage, Demande de tirage)Ajouter la possibilité de réfléchir sur les pièces jointes définies en utilisant le mécanisme de réflexion existant d'Active Record. (Demande de tirage)
Ajouter
ActiveStorage::Blob#open
, qui télécharge un blob dans un fichier temporaire sur le disque et renvoie le fichier temporaire. (Commit)Prendre en charge le streaming des téléchargements depuis Google Cloud Storage. Nécessite la version 1.11+ de la gemme
google-cloud-storage
. (Pull Request)Utiliser la gemme
image_processing
pour les variantes d'Active Storage. Cela remplace l'utilisation demini_magick
directement. (Pull Request)
10 Active Model
Veuillez vous référer au [journal des modifications][active-model] pour des détails sur les changements.
10.1 Suppressions
10.2 Dépréciations
10.3 Changements notables
Ajouter une option de configuration pour personnaliser le format de
ActiveModel::Errors#full_message
. (Pull Request)Ajouter la prise en charge de la configuration du nom d'attribut pour
has_secure_password
. (Pull Request)Ajouter la méthode
#slice!
àActiveModel::Errors
. (Pull Request)Ajouter
ActiveModel::Errors#of_kind?
pour vérifier la présence d'une erreur spécifique. (Pull Request)Corriger la méthode
ActiveModel::Serializers::JSON#as_json
pour les horodatages. (Pull Request)Corriger le validateur de numéricité pour utiliser toujours la valeur avant la conversion de type, sauf pour Active Record. (Pull Request)
Corriger la validation d'égalité de numéricité de
BigDecimal
etFloat
en les convertissant enBigDecimal
des deux côtés de la validation. (Pull Request)Corriger la valeur de l'année lors de la conversion d'un hachage de temps multiparamètre. (Pull Request)
Convertir les symboles booléens faux sur un attribut booléen en faux. (Pull Request)
Renvoyer la date correcte lors de la conversion des paramètres dans
value_from_multiparameter_assignment
pourActiveModel::Type::Date
. (Pull Request)Revenir à la locale parente avant de revenir à l'espace de noms
:errors
lors de la récupération des traductions d'erreurs. (Pull Request)
11 Active Support
Veuillez vous référer au journal des modifications pour des détails sur les changements.
11.1 Suppressions
Supprimer la méthode dépréciée
#acronym_regex
deInflections
. (Commit)Supprimer la méthode dépréciée
Module#reachable?
. (Commit)Supprimer
Kernel#`
sans remplacement. (Pull Request)
11.2 Dépréciations
Déprécier l'utilisation d'arguments entiers négatifs pour
String#first
etString#last
. (Pull Request)Déprécier
ActiveSupport::Multibyte::Unicode#downcase/upcase/swapcase
au profit deString#downcase/upcase/swapcase
. (Pull Request)Déprécier
ActiveSupport::Multibyte::Unicode#normalize
etActiveSupport::Multibyte::Chars#normalize
au profit deString#unicode_normalize
. (Pull Request)Déprécier
ActiveSupport::Multibyte::Chars.consumes?
au profit deString#is_utf8?
. (Pull Request)Déprécier
ActiveSupport::Multibyte::Unicode#pack_graphemes(array)
etActiveSupport::Multibyte::Unicode#unpack_graphemes(string)
au profit dearray.flatten.pack("U*")
etstring.scan(/\X/).map(&:codepoints)
, respectivement. (Pull Request)
11.3 Changements notables
Ajouter la prise en charge des tests parallèles. (Pull Request)
S'assurer que
String#strip_heredoc
préserve la congelation des chaînes. (Pull Request)Ajouter
String#truncate_bytes
pour tronquer une chaîne à une taille maximale en octets sans casser les caractères multioctets ou les groupes de graphèmes. (Pull Request)Ajouter l'option
private
à la méthodedelegate
pour déléguer à des méthodes privées. Cette option acceptetrue/false
comme valeur. (Pull Request)Ajouter la prise en charge des traductions via I18n pour
ActiveSupport::Inflector#ordinal
etActiveSupport::Inflector#ordinalize
. (Pull Request)Ajouter les méthodes
before?
etafter?
àDate
,DateTime
,Time
etTimeWithZone
. (Pull Request)Corriger le bogue où
URI.unescape
échouait avec un mélange de caractères Unicode/échappés. (Pull Request)Corriger le bogue où
ActiveSupport::Cache
augmentait considérablement la taille de stockage lorsque la compression était activée. (Pull Request)Redis cache store :
delete_matched
ne bloque plus le serveur Redis. (Pull Request)Corriger le bogue où
ActiveSupport::TimeZone.all
échouait lorsque les données tzinfo pour n'importe quel fuseau horaire défini dansActiveSupport::TimeZone::MAPPING
étaient manquantes. (Pull Request)Ajouter
Enumerable#index_with
qui permet de créer un hash à partir d'un énumérable avec la valeur d'un bloc passé ou un argument par défaut. (Pull Request)Permettre aux méthodes
Range#===
etRange#cover?
de fonctionner avec un argument de typeRange
. (Pull Request)Ajouter la prise en charge de l'expiration des clés dans les opérations
increment/decrement
de RedisCacheStore. (Demande de tirage)Ajouter les fonctionnalités de temps CPU, de temps d'inactivité et d'allocations aux événements du souscripteur de journalisation. (Demande de tirage)
Ajouter la prise en charge de l'objet d'événement au système de notification Active Support. (Demande de tirage)
Ajouter la prise en charge de la non mise en cache des entrées
nil
en introduisant la nouvelle optionskip_nil
pourActiveSupport::Cache#fetch
. (Demande de tirage)Ajouter la méthode
Array#extract!
qui supprime et renvoie les éléments pour lesquels le bloc renvoie une valeur vraie. (Demande de tirage)Conserver une chaîne HTML-safe après découpage. (Demande de tirage)
Ajouter la prise en charge du suivi des autoloads constants via la journalisation. (Commit)
Définir
unfreeze_time
comme un alias detravel_back
. (Demande de tirage)Changer
ActiveSupport::TaggedLogging.new
pour renvoyer une nouvelle instance de journal au lieu de modifier celle reçue en argument. (Demande de tirage)Traiter les méthodes
#delete_prefix
,#delete_suffix
et#unicode_normalize
comme des méthodes non HTML-safe. (Demande de tirage)Corriger le bogue où
#without
pourActiveSupport::HashWithIndifferentAccess
échouait avec des arguments de type symbole. (Demande de tirage)Renommer
Module#parent
,Module#parents
etModule#parent_name
enmodule_parent
,module_parents
etmodule_parent_name
. (Demande de tirage)Ajouter
ActiveSupport::ParameterFilter
. (Demande de tirage)Corriger le problème où la durée était arrondie à la seconde entière lorsque un nombre à virgule flottante était ajouté à la durée. (Demande de tirage)
Faire de
#to_options
un alias de#symbolize_keys
dansActiveSupport::HashWithIndifferentAccess
. (Demande de tirage)Ne plus lever d'exception si le même bloc est inclus plusieurs fois pour un Concern. (Demande de tirage)
Préserver l'ordre des clés transmises à
ActiveSupport::CacheStore#fetch_multi
. (Demande de tirage)Corriger
String#safe_constantize
pour ne pas générer uneLoadError
pour les références de constantes incorrectement cadrées. (Demande de tirage)Ajouter
Hash#deep_transform_values
etHash#deep_transform_values!
. (Commit)Ajouter
ActiveSupport::HashWithIndifferentAccess#assoc
. (Demande de tirage)Ajouter le rappel
before_reset
àCurrentAttributes
et définirafter_reset
comme un alias deresets
pour la symétrie. (Demande de tirage)Réviser
ActiveSupport::Notifications.unsubscribe
pour gérer correctement les abonnés avec des expressions régulières ou plusieurs motifs. (Demande de tirage)Ajouter un nouveau mécanisme de chargement automatique utilisant Zeitwerk. (Commit)
Ajouter
Array#including
etEnumerable#including
pour agrandir facilement une collection. (Commit)Renommer
Array#without
etEnumerable#without
enArray#excluding
etEnumerable#excluding
. Les anciens noms de méthode sont conservés en tant qu'alias. (Commit)Ajouter la prise en charge de la fourniture de la
locale
àtransliterate
etparameterize
. (Demande de tirage)Corriger
Time#advance
pour fonctionner avec des dates antérieures à 1001-03-07. (Demande de tirage)Mettre à jour
ActiveSupport::Notifications::Instrumenter#instrument
pour permettre de ne pas passer de bloc. (Demande de tirage)Utiliser des références faibles dans le suivi des descendants pour permettre aux sous-classes anonymes d'être collectées par le garbage collector. (Demande de tirage)
Appeler les méthodes de test avec la méthode
with_info_handler
pour permettre au plugin minitest-hooks de fonctionner. (Commit)Préserver le statut
html_safe?
surActiveSupport::SafeBuffer#*
. (Demande de tirage)
12 Active Job
Veuillez vous référer au journal des modifications pour des changements détaillés.
12.1 Suppressions
- Supprimer la prise en charge de la gemme Qu. (Demande de tirage)
12.2 Dépréciations
12.3 Changements notables
Ajouter la prise en charge de sérialiseurs personnalisés pour les arguments de Active Job. (Demande de tirage)
Ajouter la prise en charge de l'exécution des tâches Active dans le fuseau horaire dans lequel elles ont été mises en file d'attente. (Demande de tirage)
Autoriser le passage de plusieurs exceptions à
retry_on
/discard_on
. (Commit)Autoriser l'appel de
assert_enqueued_with
etassert_enqueued_email_with
sans bloc. (Demande de tirage)Envelopper les notifications pour
enqueue
etenqueue_at
dans le rappelaround_enqueue
au lieu du rappelafter_enqueue
. (Demande de tirage)Autoriser l'appel de
perform_enqueued_jobs
sans bloc. (Demande de tirage)Autoriser l'appel de
assert_performed_with
sans bloc. (Demande de tirage)Ajouter l'option
:queue
aux assertions et aux helpers de job. (Pull Request)Ajouter des hooks à Active Job pour les tentatives de réessai et les suppressions. (Pull Request)
Ajouter une façon de tester un sous-ensemble d'arguments lors de l'exécution des jobs. (Pull Request)
Inclure les arguments désérialisés dans les jobs retournés par les helpers de test d'Active Job. (Pull Request)
Permettre aux helpers d'assertion d'Active Job d'accepter un Proc pour le mot-clé
only
. (Pull Request)Supprimer les microsecondes et les nanosecondes des arguments du job dans les helpers d'assertion. (Pull Request)
13 Ruby on Rails Guides
Veuillez vous référer au [Changelog][guides] pour les changements détaillés.
13.1 Changements notables
Ajouter le guide sur les bases de données multiples avec Active Record. (Pull Request)
Ajouter une section sur le dépannage du chargement automatique des constantes. (Commit)
Ajouter le guide sur les bases de l'Action Mailbox. (Pull Request)
Ajouter le guide sur l'aperçu de l'Action Text. (Pull Request)
14 Crédits
Consultez la liste complète des contributeurs à Rails pour toutes les personnes qui ont passé de nombreuses heures à faire de Rails le framework stable et robuste qu'il est. Félicitations à tous.
Retour d'information
Vous êtes encouragé à contribuer à l'amélioration de la qualité de ce guide.
Veuillez contribuer si vous trouvez des fautes de frappe ou des erreurs factuelles. Pour commencer, vous pouvez lire notre contribution à la documentation section.
Vous pouvez également trouver du contenu incomplet ou des informations qui ne sont pas à jour. Veuillez ajouter toute documentation manquante pour la version principale. Assurez-vous de vérifier Edge Guides d'abord pour vérifier si les problèmes ont déjà été résolus ou non sur la branche principale. Consultez les Directives des guides Ruby on Rails pour le style et les conventions.
Si pour une raison quelconque vous repérez quelque chose à corriger mais ne pouvez pas le faire vous-même, veuillez ouvrir un problème.
Et enfin, toute discussion concernant la documentation de Ruby on Rails est la bienvenue sur le Forum officiel de Ruby on Rails.