1 Rails 6.0 へのアップグレード
既存のアプリケーションをアップグレードする場合は、アップグレードする前に十分なテストカバレッジを持つことが重要です。また、まだ行っていない場合はまず Rails 5.2 にアップグレードし、アプリケーションが正常に動作することを確認してから Rails 6.0 への更新を試みてください。アップグレード時に注意すべき点のリストは、Ruby on Rails のアップグレードガイドで入手できます。
2 主な機能
2.1 Action Mailbox
Action Mailboxは、受信したメールをコントローラのようなメールボックスにルーティングすることができます。 Action Mailbox については、Action Mailbox の基本ガイドで詳しく説明しています。
2.2 Action Text
Action Textは、Rails にリッチテキストのコンテンツと編集機能をもたらします。これには、フォーマットやリンク、引用、リスト、埋め込み画像やギャラリーなど、すべてを扱うTrix エディタが含まれています。Trix エディタによって生成されたリッチテキストのコンテンツは、既存のアプリケーション内の任意の Active Record モデルに関連付けられた独自の RichText モデルに保存されます。埋め込まれた画像(またはその他の添付ファイル)は、Active Storage を使用して自動的に保存され、含まれる RichText モデルに関連付けられます。
Action Text については、Action Text の概要ガイドで詳しく説明しています。
2.3 パラレルテスト
パラレルテストを使用すると、テストスイートを並列化することができます。プロセスのフォークがデフォルトの方法ですが、スレッドもサポートされています。テストを並列実行することで、テストスイート全体の実行時間を短縮することができます。
2.4 Action Cable テスト
Action Cable テストツールを使用すると、Action Cable の機能を接続、チャンネル、ブロードキャストのいずれのレベルでもテストすることができます。
3 Railties
詳細な変更については、変更ログを参照してください。
3.1 削除
プラグインテンプレート内の非推奨な
after_bundle
ヘルパーを削除しました。 (コミット)アプリケーションクラスを
run
の引数として使用するconfig.ru
の非推奨なサポートを削除しました。 (コミット)rails コマンドからの非推奨な
environment
引数を削除しました。 (コミット)ジェネレータとテンプレート内の非推奨な
capify!
メソッドを削除しました。 (コミット)非推奨な
config.secret_token
を削除しました。 (コミット)
3.2 非推奨
-
rails server
に Rack サーバー名を通常の引数として渡すことを非推奨にしました。 (プルリクエスト) HOST
環境を使用してサーバーIPを指定するサポートを非推奨にします。 (プルリクエスト)config_for
によって返されるハッシュに非シンボルキーでアクセスすることを非推奨にします。 (プルリクエスト)
3.3 注目すべき変更点
rails server
コマンドのサーバーを指定するための明示的なオプション--using
または-u
を追加します。 (プルリクエスト)rails routes
の出力を展開形式で表示する機能を追加します。 (プルリクエスト)インラインのActive Jobアダプターを使用してシードデータベースタスクを実行します。 (プルリクエスト)
アプリケーションのデータベースを変更するための
rails db:system:change
コマンドを追加します。 (プルリクエスト)rails test:channels
コマンドを追加して、Action Cableチャンネルのみをテストします。 (プルリクエスト)DNSリバインディング攻撃に対するガードを導入します。 (プルリクエスト)
ジェネレーターコマンドの実行中に失敗した場合に中止する機能を追加します。 (プルリクエスト)
Rails 6のデフォルトのJavaScriptコンパイラをWebpackerにします。 (プルリクエスト)
rails db:migrate:status
コマンドに複数のデータベースのサポートを追加します。 (プルリクエスト)ジェネレーターで複数のデータベースから異なるマイグレーションパスを使用する機能を追加します。 (プルリクエスト)
複数の環境での認証情報のサポートを追加します。 (プルリクエスト)
テスト環境でのデフォルトのキャッシュストアを
null_store
にします。 (プルリクエスト)
4 Action Cable
詳細な変更点については、Changelogを参照してください。
4.1 削除
ActionCable.startDebugging()
とActionCable.stopDebugging()
をActionCable.logger.enabled
で置き換えます。 (プルリクエスト)
4.2 非推奨
- Rails 6.0では、Action Cableに関する非推奨事項はありません。
4.3 注目すべき変更点
cable.yml
でPostgreSQLのサブスクリプションアダプターのchannel_prefix
オプションをサポートします。 (プルリクエスト)ActionCable::Server::Base
にカスタム設定を渡す機能を追加します。 (プルリクエスト):action_cable_connection
と:action_cable_channel
のロードフックを追加します。 (プルリクエスト)Channel::Base#broadcast_to
とChannel::Base.broadcasting_for
を追加します。 (プルリクエスト)ActionCable::Connection
からreject_unauthorized_connection
を呼び出すと接続を閉じます。 (プルリクエスト)Action CableのJavaScriptパッケージをCoffeeScriptからES2015に変換し、ソースコードをnpm配布に公開します。 (プルリクエスト)
WebSocketアダプターとロガーアダプターの設定を
ActionCable
のプロパティからActionCable.adapters
に移動します。 (プルリクエスト)Action CableのRedisアダプターに
id
オプションを追加して、Redisの接続を区別します。 (プルリクエスト)
5 Action Pack
詳細な変更点については、Changelogを参照してください。
5.1 削除
combined_fragment_cache_key
に対して非推奨のfragment_cache_key
ヘルパーを削除します。 (コミット)ActionDispatch::TestResponse
の非推奨メソッドを削除します:#success?
を#successful?
に、#missing?
を#not_found?
に、#error?
を#server_error?
に置き換えます。 (コミット)
5.2 非推奨
ActionDispatch::Http::ParameterFilter
をActiveSupport::ParameterFilter
に非推奨にします。 (プルリクエスト)コントローラーレベルの
force_ssl
をconfig.force_ssl
に非推奨にします。 (プルリクエスト)
5.3 注目すべき変更点
ActionDispatch::Response#content_type
がContent-Typeヘッダーをそのまま返すように変更されました。 (プルリクエスト)リソースパラメータにコロンが含まれている場合、
ArgumentError
を発生させるように変更されました。 (プルリクエスト)特定のブラウザの機能を定義するために、
ActionDispatch::SystemTestCase.driven_by
をブロックで呼び出すことができるようになりました。 (プルリクエスト)DNSリバインディング攻撃から保護するための
ActionDispatch::HostAuthorization
ミドルウェアが追加されました。 (プルリクエスト)ActionController::TestCase
でparsed_body
を使用することができるようになりました。 (プルリクエスト)同じコンテキスト内で複数のルートルートが存在する場合、
as:
の名前指定がない場合にArgumentError
を発生させるように変更されました。 (プルリクエスト)パラメータの解析エラーを処理するために
#rescue_from
の使用を許可するようになりました。 (プルリクエスト)パラメータを反復処理するための
ActionController::Parameters#each_value
が追加されました。 (プルリクエスト)send_data
とsend_file
でContent-Dispositionのファイル名をエンコードするようになりました。 (プルリクエスト)ActionController::Parameters#each_key
を公開するようになりました。 (プルリクエスト)署名付き/暗号化されたクッキー内の目的と有効期限のメタデータが追加され、クッキーの値をコピーしないようになりました。 (プルリクエスト)
矛盾する
respond_to
呼び出しに対してActionController::RespondToMismatchError
を発生させるようになりました。 (プルリクエスト)リクエストフォーマットのテンプレートが存在しない場合に明示的なエラーページを追加しました。 (プルリクエスト)
ActionDispatch::DebugExceptions.register_interceptor
を導入し、レンダリング前に例外を処理する方法を提供しました。 (プルリクエスト)1つのリクエストに対して1つのContent-Security-Policy nonceヘッダー値のみを出力するようになりました。 (プルリクエスト)
明示的にコントローラに含めることができる、Railsのデフォルトヘッダー設定のためのモジュールが追加されました。 (プルリクエスト)
ActionDispatch::Request::Session
に#dig
を追加しました。 (プルリクエスト)
6 Action View
詳細な変更点については、Changelogを参照してください。
6.1 削除
廃止予定の
image_alt
ヘルパーを削除しました。 (コミット)機能が既に
record_tag_helper
gemに移動された空のRecordTagHelper
モジュールを削除しました。 (コミット)
6.2 廃止予定
置換なしで
ActionView::Template.finalize_compiled_template_methods
を廃止しました。 (プルリクエスト)置換なしで
config.action_view.finalize_compiled_template_methods
を廃止しました。 (プルリクエスト)options_from_collection_for_select
ビューヘルパーからプライベートモデルメソッドを呼び出すことを廃止しました。 (プルリクエスト)
6.3 注目すべき変更点
開発モードでのみファイルの変更時にAction Viewキャッシュをクリアし、開発モードの高速化を実現しました。 (プルリクエスト)
Railsのすべてのnpmパッケージを
@rails
スコープに移動しました。 (プルリクエスト)テンプレートとパーシャルのレンダリングサーバー出力に割り当てを追加しました。 (プルリクエスト)
date_select
タグにyear_format
オプションを追加し、年の名前をカスタマイズできるようにしました。 (プルリクエスト)javascript_include_tag
ヘルパーにnonce: true
オプションを追加し、Content Security Policyの自動nonce生成をサポートしました。 (プルリクエスト)ActionView::Template
の最終処理を無効化または有効化するためのaction_view.finalize_compiled_template_methods
設定を追加しました。 (プルリクエスト)rails_ujs
内のJavaScriptのconfirm
呼び出しを、オーバーライド可能なメソッドに抽出します。 (プルリクエスト)UTF-8エンコーディングの強制を処理するために、
action_controller.default_enforce_utf8
設定オプションを追加します。デフォルトはfalse
です。 (プルリクエスト)ロケールキーをサブミットタグに対してI18nキースタイルのサポートを追加します。 (プルリクエスト)
7 アクションメーラー
詳細な変更については、変更履歴を参照してください。
7.1 削除
7.2 廃止予定
ActionMailer::Base.receive
を廃止し、Action Mailboxを利用するようにします。 (コミット)DeliveryJob
とParameterized::DeliveryJob
を廃止し、MailDeliveryJob
を利用するようにします。 (プルリクエスト)
7.3 注目すべき変更
通常のメールとパラメータ化されたメールの両方を配信するための
MailDeliveryJob
を追加します。 (プルリクエスト)カスタムのメール配信ジョブがAction Mailerのテストアサーションと連携できるようにします。 (プルリクエスト)
アクション名だけでなく、ブロックを使用してマルチパートメールのテンプレート名を指定できるようにします。 (プルリクエスト)
deliver.action_mailer
通知のペイロードにperform_deliveries
を追加します。 (プルリクエスト)perform_deliveries
がfalseの場合に、メールの送信がスキップされたことを示すログメッセージを改善します。 (プルリクエスト)ブロックなしで
assert_enqueued_email_with
を呼び出すことができるようにします。 (プルリクエスト)assert_emails
ブロック内でエンキューされたメール配信ジョブを実行します。 (プルリクエスト)ActionMailer::Base
からオブザーバーとインターセプターを登録解除できるようにします。 (プルリクエスト)
8 アクティブレコード
詳細な変更については、変更履歴を参照してください。
8.1 削除
トランザクションオブジェクトから廃止予定の
#set_state
を削除します。 (コミット)データベースアダプタから廃止予定の
#supports_statement_cache?
を削除します。 (コミット)データベースアダプタから廃止予定の
#insert_fixtures
を削除します。 (コミット)ActiveRecord::ConnectionAdapters::SQLite3Adapter#valid_alter_table_type?
を廃止します。 (コミット)ブロックが渡された場合に
sum
にカラム名を渡すことをサポートしないようにします。 (コミット)ブロックが渡された場合に
count
にカラム名を渡すことをサポートしないようにします。 (コミット)リレーションの欠落したメソッドをArelに委譲するサポートを削除します。 (コミット)
リレーションの欠落したメソッドをクラスのプライベートメソッドに委譲するサポートを削除します。 (コミット)
#cache_key
にタイムスタンプ名を指定するサポートを削除します。 (コミット)廃止予定の
ActiveRecord::Migrator.migrations_path=
を削除します。 (コミット)expand_hash_conditions_for_aggregates
を廃止します。 (コミット)
8.2 廃止予定
一意性バリデータの大文字小文字の区別がある照合比較を廃止します。 (コミット)
受信側スコープが漏洩している場合に、クラスレベルのクエリメソッドの使用を廃止します。 (プルリクエスト)
config.active_record.sqlite3.represent_boolean_as_integer
を廃止します。 (コミット)migrations_paths
をconnection.assume_migrated_upto_version
に渡すことを廃止します。 (コミット)ActiveRecord::Result#to_hash
をActiveRecord::Result#to_a
に廃止します。 (コミット)DatabaseLimits
のメソッドcolumn_name_length
、table_name_length
、columns_per_table
、indexes_per_table
、columns_per_multicolumn_index
、sql_query_length
、joins_per_query
を廃止します。 (コミット)update_attributes
/!
をupdate
/!
に廃止します。 (コミット)
8.3 注目すべき変更
sqlite3
gemの最小バージョンを1.4に上げます。 (プルリクエスト)rails db:prepare
を追加して、存在しない場合はデータベースを作成し、マイグレーションを実行します。 (プルリクエスト)after_save_commit
コールバックを追加して、after_commit :hook, on: [ :create, :update ]
のショートカットを提供します。 (プルリクエスト)関連するレコードをリレーションから抽出するための
ActiveRecord::Relation#extract_associated
を追加します。 (プルリクエスト)ActiveRecord::RelationクエリにSQLコメントを追加するための
ActiveRecord::Relation#annotate
を追加します。 (プルリクエスト)データベースにOptimizer Hintsを設定するサポートを追加します。 (プルリクエスト)
バルク挿入を行うための
insert_all
/insert_all!
/upsert_all
メソッドを追加します。 (プルリクエスト)現在の環境の各データベースのテーブルを切り捨て、シードをロードするための
rails db:seed:replant
を追加します。 (プルリクエスト)unscope(:select).select(fields)
のショートカットであるreselect
メソッドを追加します。 (プルリクエスト)すべてのenum値に対するネガティブスコープを追加します。 (プルリクエスト)
条件付きの削除のための
#destroy_by
と#delete_by
を追加します。 (プルリクエスト)ブロックの実行中にデータベースへの書き込みを自動的に無効にする機能を追加します。 (プルリクエスト)
複数のデータベースをサポートするための接続切り替えの機能を追加します。 (プルリクエスト)
複数のデータベースをサポートするための接続切り替えのためのAPIを追加します。 (プルリクエスト)
マイグレーションのデフォルトとして、タイムスタンプに精度を設定します。 (プルリクエスト)
MySQLでテキストとBLOBのサイズを変更するための
:size
オプションをサポートします。 (プルリクエスト)dependent: :nullify
戦略でのポリモーフィック関連の場合、外部キーと外部タイプの両方のカラムをNULLに設定します。 (プルリクエスト)ActiveRecord::Relation#exists?
の引数として許可されたActionController::Parameters
のインスタンスを渡すことを許可します。 (プルリクエスト)Ruby 2.6で導入された無限範囲のための
#where
サポートを追加します。 (プルリクエスト)MySQLのデフォルトのテーブル作成オプションとして
ROW_FORMAT=DYNAMIC
を設定します。 (プルリクエスト)ActiveRecord.enum
によって生成されるスコープを無効にする機能を追加します。 (プルリクエスト)カラムの暗黙の並べ替えを設定可能にします。 (プルリクエスト)
PostgreSQLの最小バージョンを9.3に引き上げ、9.1と9.2のサポートを終了します。 (プルリクエスト)
enumの値を変更しようとするとエラーが発生するようにし、enumの値を凍結します。 (プルリクエスト)
ActiveRecord::StatementInvalid
エラーのSQLを独自のエラープロパティとして設定し、SQLバインドを別のエラープロパティとして含めます。 (プルリクエスト)create_table
にif_not_exists
オプションを追加します。 (プルリクエスト)rails db:schema:cache:dump
とrails db:schema:cache:clear
に複数のデータベースのサポートを追加します。 (プルリクエスト)ActiveRecord::Base.connected_to
のデータベースハッシュでハッシュとURLの設定をサポートします。 (プルリクエスト)MySQLのデフォルト式と式インデックスのサポートを追加します。 (プルリクエスト)
change_table
マイグレーションヘルパーのためのindex
オプションを追加します。 (プルリクエスト)マイグレーションの
transaction
のリバートを修正しました。以前は、リバートされたマイグレーション内のコマンドがリバートされずに実行されていましたが、この変更により修正されました。 (プルリクエスト)ActiveRecord::Base.configurations=
をシンボル化されたハッシュで設定できるようにしました。 (プルリクエスト)カウンターキャッシュを実際に保存された場合にのみ更新するように修正しました。 (プルリクエスト)
SQLiteアダプターに式インデックスのサポートを追加しました。 (プルリクエスト)
関連するレコードの自動保存コールバックをサブクラスで再定義できるようにしました。 (プルリクエスト)
最小のMySQLバージョンを5.5.8に引き上げました。 (プルリクエスト)
MySQLでデフォルトでutf8mb4文字セットを使用するようにしました。 (プルリクエスト)
ActiveRecord::Base.configurations
をハッシュではなくオブジェクトを返すように変更しました。 (プルリクエスト)アドバイザリーロックを無効にするためのデータベース設定を追加しました。 (プルリクエスト)
SQLite3アダプターの
alter_table
メソッドを更新して外部キーを復元するようにしました。 (プルリクエスト)remove_foreign_key
のto_table
オプションを反転可能にするようにしました。 (プルリクエスト)指定された精度を持つMySQLの時間型のデフォルト値を修正しました。 (プルリクエスト)
touch
オプションをPersistence#touch
メソッドと一貫した動作に修正しました。 (プルリクエスト)マイグレーションで重複する列定義がある場合に例外を発生させるようにしました。 (プルリクエスト)
最小のSQLiteバージョンを3.8に引き上げました。 (プルリクエスト)
親レコードが重複した子レコードと一緒に保存されないように修正しました。 (プルリクエスト)
Associations::CollectionAssociation#size
とAssociations::CollectionAssociation#empty?
がロードされた関連のIDを使用するように修正しました。 (プルリクエスト)ポリモーフィック関連のレコードの一部に要求された関連が存在しない場合に関連をプリロードするサポートを追加しました。 (コミット)
ActiveRecord::Relation
にtouch_all
メソッドを追加しました。 (プルリクエスト)ActiveRecord::Base.base_class?
述語を追加しました。 (プルリクエスト)ActiveRecord::Store.store_accessor
にカスタムの接頭辞/接尾辞オプションを追加しました。 (プルリクエスト)ActiveRecord::Base.find_or_create_by
/!
のSELECT/INSERT競合状態を処理するために、ActiveRecord::Base.create_or_find_by
/!
を追加しました。 (プルリクエスト)単一の値のプラックスのための省略形として
Relation#pick
を追加しました。 (プルリクエスト)
9 Active Storage
詳細な変更については、Changelogを参照してください。
9.1 削除
9.2 廃止予定
config.active_storage.queue
をconfig.active_storage.queues.analysis
とconfig.active_storage.queues.purge
に置き換えるために、config.active_storage.queue
を廃止予定にしました。 (プルリクエスト)ActiveStorage::Downloading
をActiveStorage::Blob#open
に置き換えるために、ActiveStorage::Downloading
を廃止予定にしました。 (コミット)画像のバリアントを生成するために
mini_magick
を直接使用することを廃止し、image_processing
を使用するようにしました。 (コミット)Active StorageのImageProcessingトランスフォーマーで
combine_options
を廃止しました。 (コミット)
9.3 注目すべき変更
BMP画像のバリアント生成をサポートしました。 (プルリクエスト)
TIFF画像のバリアント生成をサポートしました。 (プルリクエスト)
プログレッシブJPEG画像のバリアント生成をサポートしました。 (プルリクエスト)
ActiveStorage.routes_prefix
を追加して、Active Storageが生成するルートを設定できるようにしました。 (プルリクエスト)ActiveStorage::DiskController#show
でリクエストされたファイルがディスクサービスから見つからない場合、404 Not Foundのレスポンスを返すようにしました。 (プルリクエスト)ActiveStorage::Blob#download
とActiveStorage::Blob#open
でリクエストされたファイルが見つからない場合、ActiveStorage::FileNotFoundError
を発生させるようにしました。 (プルリクエスト)Active Storageの例外が継承するための汎用的な
ActiveStorage::Error
クラスを追加しました。 (コミット)レコードに割り当てられたアップロードされたファイルを、レコードが保存される時点でストレージに永続化するようにしました。 (プルリクエスト)
添付ファイルのコレクションに割り当てる際に、既存のファイルを置き換えるオプションを追加しました(
@user.update!(images: [ … ])
のような形式)。この動作を制御するには、config.active_storage.replace_on_assign_to_many
を使用してください。 (プルリクエスト, プルリクエスト)既存のActive Recordの反射機構を使用して、定義された添付ファイルに関する情報を取得できるようにしました。 (プルリクエスト)
ActiveStorage::Blob#open
を追加し、ブロブをディスク上の一時ファイルにダウンロードし、その一時ファイルをyieldするようにしました。 (コミット)Google Cloud Storageからのストリーミングダウンロードをサポートしました。
google-cloud-storage
gemのバージョン1.11以上が必要です。 (プルリクエスト)Active Storageのバリアントには
mini_magick
の代わりにimage_processing
gemを使用するようにしました。 (プルリクエスト)
10 Active Model
詳細な変更については、Changelogを参照してください。
10.1 削除
10.2 廃止予定
10.3 注目すべき変更
ActiveModel::Errors#full_message
のフォーマットをカスタマイズするための設定オプションを追加しました。 (プルリクエスト)has_secure_password
の属性名を設定するためのサポートを追加しました。 (プルリクエスト)ActiveModel::Errors
に#slice!
メソッドを追加しました。 (プルリクエスト)特定のエラーの存在をチェックするための
ActiveModel::Errors#of_kind?
を追加しました。 (プルリクエスト)タイムスタンプのための
ActiveModel::Serializers::JSON#as_json
メソッドを修正しました。 (プルリクエスト)Active Record以外では、数値検証子は型変換前の値を使用するように修正しました。 (プルリクエスト)
BigDecimal
とFloat
の数値検証の等価性を、検証の両端でBigDecimal
にキャストすることで修正しました。 (プルリクエスト)マルチパラメータの時間ハッシュをキャストする際の年の値を修正しました。 (プルリクエスト)
ブール属性の偽の値として、偽のブールシンボルを型変換するように修正しました。 (プルリクエスト)
ActiveModel::Type::Date
のvalue_from_multiparameter_assignment
でパラメータを変換する際に、正しい日付を返すように修正しました。 (プルリクエスト)エラーの翻訳を取得する際に、
:errors
の名前空間の代わりに親のロケールを優先して使用するように修正しました。 (プルリクエスト)
11 Active Support
詳細な変更については、Changelogを参照してください。
11.1 削除
Inflections
から非推奨の#acronym_regex
メソッドを削除しました。 (コミット)非推奨の
Module#reachable?
メソッドを削除しました。 (コミット)代替方法なしで
Kernel#`
を削除しました。 (プルリクエスト)
11.2 廃止予定
String#first
とString#last
に対して負の整数引数を使用することを廃止しました。 (プルリクエスト)ActiveSupport::Multibyte::Unicode#downcase/upcase/swapcase
を廃止し、String#downcase/upcase/swapcase
を使用するようにしました。 (プルリクエスト)ActiveSupport::Multibyte::Unicode#normalize
とActiveSupport::Multibyte::Chars#normalize
をString#unicode_normalize
に置き換えるために非推奨化します。 ([プルリクエスト](https://github.com/rails/rails/pull/34202))ActiveSupport::Multibyte::Chars.consumes?
をString#is_utf8?
に置き換えるために非推奨化します。 ([プルリクエスト](https://github.com/rails/rails/pull/34215))ActiveSupport::Multibyte::Unicode#pack_graphemes(array)
とActiveSupport::Multibyte::Unicode#unpack_graphemes(string)
をそれぞれarray.flatten.pack("U *")
とstring.scan(/ \ X /).map(&:codepoints)
に置き換えるために非推奨化します。 ([プルリクエスト](https://github.com/rails/rails/pull/34254))
11.3 注目すべき変更
並列テストのサポートを追加します。 ([プルリクエスト](https://github.com/rails/rails/pull/31900))
String#strip_heredoc
が文字列の凍結を保持するようにします。 ([プルリクエスト](https://github.com/rails/rails/pull/32037))マルチバイト文字やグラフェムクラスターを壊さずに、文字列を最大バイトサイズに切り詰めるための
String#truncate_bytes
を追加します。 ([プルリクエスト](https://github.com/rails/rails/pull/27319))delegate
メソッドにprivate
オプションを追加し、プライベートメソッドに委譲するためのオプションを追加します。このオプションはtrue/false
を値として受け入れます。 ([プルリクエスト](https://github.com/rails/rails/pull/31944))ActiveSupport::Inflector#ordinal
とActiveSupport::Inflector#ordinalize
の翻訳をサポートするために、I18nを介した翻訳のサポートを追加します。 ([プルリクエスト](https://github.com/rails/rails/pull/32168))Date
、DateTime
、Time
、およびTimeWithZone
にbefore?
およびafter?
メソッドを追加します。 ([プルリクエスト](https://github.com/rails/rails/pull/32185))URI.unescape
が混在したUnicode/エスケープ文字の入力で失敗するバグを修正します。 ([プルリクエスト](https://github.com/rails/rails/pull/32183))圧縮が有効になっている場合に、
ActiveSupport::Cache
がストレージサイズを大幅に拡大するバグを修正します。 ([プルリクエスト](https://github.com/rails/rails/pull/32539))Redisキャッシュストア:
delete_matched
がRedisサーバーをブロックしなくなりました。 ([プルリクエスト](https://github.com/rails/rails/pull/32614))ActiveSupport::TimeZone.all
が、ActiveSupport::TimeZone::MAPPING
で定義された任意のタイムゾーンのtzinfoデータが欠落している場合に失敗するバグを修正します。 ([プルリクエスト](https://github.com/rails/rails/pull/32613))Enumerable#index_with
を追加し、渡されたブロックまたはデフォルト引数の値で列挙可能なオブジェクトからハッシュを作成できるようにします。 ([プルリクエスト](https://github.com/rails/rails/pull/32523))Range#===
およびRange#cover?
メソッドがRange
引数と一緒に動作するようにします。 ([プルリクエスト](https://github.com/rails/rails/pull/32938))RedisCacheStoreの
increment/decrement
操作でキーの有効期限をサポートします。 ([プルリクエスト](https://github.com/rails/rails/pull/33254))ログサブスクライバイベントにCPU時間、アイドル時間、および割り当て機能を追加します。 ([プルリクエスト](https://github.com/rails/rails/pull/33449))
Active Support通知システムにイベントオブジェクトのサポートを追加します。 ([プルリクエスト](https://github.com/rails/rails/pull/33451))
ActiveSupport::Cache#fetch
のための新しいオプションskip_nil
を導入して、nil
エントリをキャッシュしないようにサポートを追加します。 ([プルリクエスト](https://github.com/rails/rails/pull/25437))ブロックが真の値を返す要素を削除して返す
Array#extract!
メソッドを追加します。 ([プルリクエスト](https://github.com/rails/rails/pull/33137))スライス後もHTMLセーフな文字列をHTMLセーフに保ちます。 ([プルリクエスト](https://github.com/rails/rails/pull/33808))
ロギングを介した定数の自動読み込みのトレースをサポートするためのサポートを追加します。 ([コミット](https://github.com/rails/rails/commit/c03bba4f1f03bad7dc034af555b7f2b329cf76f5))
unfreeze_time
をtravel_back
のエイリアスとして定義します。 ([プルリクエスト](https://github.com/rails/rails/pull/33813))ActiveSupport::TaggedLogging.new
を、受け取ったロガーインスタンスを変更するのではなく、新しいロガーインスタンスを返すように変更します。 ([プルリクエスト](https://github.com/rails/rails/pull/27792))#delete_prefix
、#delete_suffix
、および#unicode_normalize
メソッドをHTMLセーフでないメソッドとして扱います。 ([プルリクエスト](https://github.com/rails/rails/pull/33990))ActiveSupport::HashWithIndifferentAccess
の#without
がシンボル引数で失敗するバグを修正します。 ([プルリクエスト](https://github.com/rails/rails/pull/34012))Module#parent
、Module#parents
、およびModule#parent_name
をmodule_parent
、module_parents
、およびmodule_parent_name
に名前変更します。 ([プルリクエスト](https://github.com/rails/rails/pull/34051))ActiveSupport::ParameterFilter
を追加します。 ([プルリクエスト](https://github.com/rails/rails/pull/34039))浮動小数点数が期間に追加されたときに、秒数が完全な秒に丸められるバグを修正します。 ([プルリクエスト](https://github.com/rails/rails/pull/34135))
ActiveSupport::HashWithIndifferentAccess
に#to_options
を#symbolize_keys
のエイリアスとして追加します。 (プルリクエスト)Concernに同じブロックが複数回含まれている場合には例外を発生させないようにします。 (プルリクエスト)
ActiveSupport::CacheStore#fetch_multi
に渡されたキーの順序を保持します。 (プルリクエスト)String#safe_constantize
を修正して、大文字小文字が正しくない定数参照に対してLoadError
をスローしないようにします。 (プルリクエスト)Hash#deep_transform_values
とHash#deep_transform_values!
を追加します。 (コミット)ActiveSupport::HashWithIndifferentAccess#assoc
を追加します。 (プルリクエスト)CurrentAttributes
にbefore_reset
コールバックを追加し、after_reset
をresets
のエイリアスとして定義します。 (プルリクエスト)ActiveSupport::Notifications.unsubscribe
を修正して、正規表現や他の複数のパターンのサブスクライバを正しく処理するようにします。 (プルリクエスト)Zeitwerkを使用した新しい自動読み込みメカニズムを追加します。 (コミット)
Array#including
とEnumerable#including
を追加して、コレクションを便利に拡大します。 (コミット)Array#without
とEnumerable#without
をArray#excluding
とEnumerable#excluding
に名前変更します。古いメソッド名はエイリアスとして保持されます。 (コミット)transliterate
とparameterize
にlocale
を指定するサポートを追加します。 (プルリクエスト)Time#advance
を修正して、1001-03-07より前の日付でも動作するようにします。 (プルリクエスト)ActiveSupport::Notifications::Instrumenter#instrument
を更新して、ブロックを渡さないようにします。 (プルリクエスト)匿名のサブクラスがガベージコレクションされるように、子孫トラッカーで弱い参照を使用します。 (プルリクエスト)
with_info_handler
メソッドを使用してテストメソッドを呼び出し、minitest-hooksプラグインを動作させるようにします。 (コミット)ActiveSupport::SafeBuffer#*
でhtml_safe?
の状態を保持します。 (プルリクエスト)
12 Active Job
詳細な変更については、Changelogを参照してください。
12.1 削除
- Qu gemのサポートを削除します。 (プルリクエスト)
12.2 廃止予定
12.3 注目すべき変更
Active Job引数のカスタムシリアライザのサポートを追加します。 (プルリクエスト)
ジョブがエンキューされたタイムゾーンでActive Jobsを実行するサポートを追加します。 (プルリクエスト)
retry_on
/discard_on
に複数の例外を渡すことを許可します。 (コミット)ブロックなしで
assert_enqueued_with
とassert_enqueued_email_with
を呼び出すことを許可します。 (プルリクエスト)enqueue
とenqueue_at
の通知をafter_enqueue
コールバックではなく、around_enqueue
コールバックでラップします。 (プルリクエスト)ブロックなしで
perform_enqueued_jobs
を呼び出すことを許可します。 (プルリクエスト)ブロックなしで
assert_performed_with
を呼び出すことを許可します。 (プルリクエスト)ジョブのアサーションとヘルパーに
queue
オプションを追加します。 (プルリクエスト)リトライと破棄の周りでActive Jobにフックを追加します。 (プルリクエスト)
ジョブを実行する際に引数のサブセットをテストする方法を追加します。 (プルリクエスト)
Active Jobのテストヘルパーでシリアライズされた引数を含めるようにします。 (プルリクエスト)
Active Jobのアサーションヘルパーが
only
キーワードに対してProcを受け入れるようにします。 (プルリクエスト)アサーションヘルパーのジョブ引数からマイクロ秒とナノ秒を削除します。 (プルリクエスト)
13 Ruby on Railsガイド
詳細な変更については、Changelogを参照してください。
13.1 注目すべき変更点
Active Recordガイドに複数のデータベースを追加します。 (プルリクエスト)
定数の自動読み込みのトラブルシューティングについてのセクションを追加します。 (コミット)
Action Mailbox Basicsガイドを追加します。 (プルリクエスト)
Action Text Overviewガイドを追加します。 (プルリクエスト)
14 クレジット
Railsを安定かつ堅牢なフレームワークにするために多くの人々が多くの時間を費やしたことについては、 Railsへの貢献者の完全なリスト を参照してください。彼ら全員に敬意を表します。
フィードバック
このガイドの品質向上にご協力ください。
タイポや事実の誤りを見つけた場合は、ぜひ貢献してください。 開始するには、ドキュメントへの貢献セクションを読んでください。
不完全なコンテンツや最新でない情報も見つかるかもしれません。 メインのドキュメントに不足しているドキュメントを追加してください。 修正済みかどうかは、まずEdge Guidesを確認してください。 スタイルと規約については、Ruby on Rails Guides Guidelinesを確認してください。
修正すべき点を見つけたが、自分で修正できない場合は、 問題を報告してください。
そして最後に、Ruby on Railsのドキュメントに関するあらゆる議論は、公式のRuby on Railsフォーラムで大歓迎です。