1 Rails 6.0へのアップグレード
既存のアプリケーションをアップグレードするのであれば、その前に質のよいテストカバレッジを用意するのはよい考えです。アプリケーションがRails 5.2までアップグレードされていない場合は先にそれを完了し、アプリケーションが正常に動作することを十分確認してからRails 6.0にアップデートしてください。アップグレードの注意点などについてはRailsアップグレードガイドを参照してください。
2 主要な機能
2.1 Action Mailbox
Action Mailboxは、受信メールをコントローラ的なメールボックスにルーティングできます。Action Mailboxの詳細はAction Mailboxの基礎を参照してください。
2.2 Action Text
Action Textは、リッチテキストコンテンツと編集機能をRailsで使えるようにします。Trixエディタは、リンク/引用/リスト/画像埋め込み/ギャラリーなどあらゆるものを扱えます。Trixエディタで生成されるリッチテキストコンテンツは独自のRichTextモデルに保存され、アプリ内にある既存のActive Recordモデルに関連付けられます。 埋め込み画像などの添付ファイルは自動的にActive Storageを用いて保存され、RichTextモデルに関連付けられます。
Action Textについて詳しくはガイドのAction Text の概要を参照してください。
2.3 並列テスト
並列テスト(parallel testing)機能によってテストスイートを並列化できます。デフォルトではプロセスをforkしますが、スレッド(threading)もサポートされます。テストを並列実行することで、テストスイート全体の実行時間を削減できます。
2.4 Action Cableのテスト支援
Action Cableテストツールを用いて、Action Cableの機能を任意のレベル(接続レベル/チャネルレベル/ブロードキャストレベル)でテストできます。
3 Railties
変更点について詳しくはChangelogを参照してください
3.1 削除されたもの
プラグインテンプレートの非推奨化
after_bundle
ヘルパーを削除 (Commit)config.ru
でアプリケーションクラスをrun
の引数として用いる非推奨サポートを削除 (Commit)rails
コマンドから非推奨environment
引数を削除 (Commit)ジェネレータとテンプレートから非推奨の
capify!
メソッドを削除 (Commit)非推奨の
config.secret_token
設定を削除 (Commit)
3.2 非推奨化
Rackサーバー名を正規の引数として
rails server
に渡すことを非推奨化 (Pull Request)サーバーIPの指定に
HOST
環境変数を使えるようにするサポートを非推奨化 (Pull Request)config_for
から返されるハッシュにシンボルでないキーでアクセスすることを非推奨化 (Pull Request)
3.3 主な変更
rails server
コマンドでサーバーを指定する明示的な--using
(または-u
)オプションを追加 (Pull Request)rails routes
出力を拡張フォーマットで表示できる機能を追加 (Pull Request)インラインのActive Jobアダプタを用いてデータベースseedタスクを実行 (Pull Request)
アプリケーションのデータベースを切り替える
rails db:system:change
コマンドを追加 (Pull Request)Action Cableチャネルだけをテストする
rails test:channels
コマンドを追加 (Pull Request)DNSリバインディング攻撃からの保護を導入 (Pull Request)
ジェネレータコマンド実行中の失敗をabortする機能を追加 (Pull Request)
WebpackerがRails 6のデフォルトJavaScriptコンパイラになる (Pull Request)
rails db:migrate:status
コマンドでマルチデータベースをサポート (Pull Request)ジェネレータでマルチデータベースごとに異なるパスを利用する機能を追加 (Pull Request)
credentialを複数の環境でサポート (Pull Request)
null_store
がtest環境のデフォルトキャッシュになる (Pull Request)
4 Action Cable
変更点について詳しくはChangelogを参照してください。
4.1 削除されたもの
-
ActionCable.startDebugging()
とActionCable.stopDebugging()
をActionCable.logger.enabled
に置き換え(Pull Request)
4.2 非推奨化
- Rails 6.0のAction Cableで非推奨化された振る舞いはありません。
4.3 主な変更
cable.yml
でPostgreSQLサブスクリプションアダプタ向けのchannel_prefix
サポートを追加 (Pull Request)ActionCable::Server::Base
にカスタム設定を渡せるようになった (Pull Request):action_cable_connection
および:action_cable_channel
読み込みフックを追加 (Pull Request)Channel::Base#broadcast_to
とChannel::Base.broadcasting_for
を追加 (Pull Request)reject_unauthorized_connection
をActionCable::Connection
から呼び出した場合に接続をクローズするようになった (Pull Request)Action CableのJavaScriptをCoffeeScriptからES2015に変換し、npmディストリビューションでソースコードをパブリッシュするようになった (Pull Request)
WebSocketアダプタやロガーアダプタの設定を
ActionCable
のプロパティからActionCable.adapters
に移動 (Pull Request)Redisアダプタに
id
オプションが追加され、Action CableのRedis接続と区別されるようになった (Pull Request)
5 Action Pack
変更点について詳しくはChangelogを参照してください。
5.1 削除されたもの
非推奨化された
fragment_cache_key
ヘルパーを削除、今後はcombined_fragment_cache_key
を用いる (Commit)ActionDispatch::TestResponse
から非推奨化された次のメソッドを削除:#success?
(今後は#successful?
を使う)、#missing?
(今後は#not_found?
を使う)、#error?
(今後は#server_error?
を使う) (Commit)
5.2 非推奨化
ActionDispatch::Http::ParameterFilter
を非推奨化、今後はActiveSupport::ParameterFilter
を用いる (Pull Request)コントローラレベルの
force_ssl
を非推奨化、今後はconfig.force_ssl
を用いる (Pull Request)
5.3 主な変更
ActionDispatch::Response#content_type
がContent-Typeヘッダーをそのまま返すよう変更 (Pull Request)リソースparamにコロンが含まれている場合は
ArgumentError
をraiseするようになった (Pull Request)ActionDispatch::SystemTestCase.driven_by
をブロック付きで呼ぶことで特定のブラウザの機能を定義できるようになった (Pull Request)ActionDispatch::HostAuthorization
ミドルウェアを追加(DNSリバインディング攻撃から保護する) (Pull Request)parsed_body
をActionController::TestCase
内で利用できるようになった (Pull Request)複数のルートルーティングが同じコンテキストに存在し、
as:
による命名仕様がない場合はArgumentError
をraiseするようになった (Pull Request)パラメータのパースエラーを
#rescue_from
で扱えるようになった (Pull Request)ActionController::Parameters#each_value
を追加(パラメータの列挙用) (Pull Request)send_data
やsend_file
でContent-Dispositionファイル名をエンコードするようになった (Pull Request)ActionController::Parameters#each_key
が公開された (Pull Request)purposeメタデータを署名済み/暗号化済みcookieに追加(cookie値を別のcookieにコピーされないようにする) (Pull Request)
respond_to
呼び出しが衝突した場合にActionController::RespondToMismatchError
をraiseするようになった (Pull Request)リクエストフォーマットでテンプレートが見つからない場合に使う明示的なエラーページを追加 (Pull Request)
ActionDispatch::DebugExceptions.register_interceptor
を導入した(レンダリング開始前にDebugExceptionsにフックして例外を処理する手段のひとつ) (Pull Request)1リクエストに付きContent-Security-Policy(CSP)nonceヘッダー値を1つしか出力しないようになった (Pull Request)
Railsのコントローラで明示的にincludeできるデフォルトのヘッダー設定で主に用いられるモジュールを追加 (Pull Request)
#dig
をActionDispatch::Request::Session
に追加 (Pull Request)
6 Action View
変更点について詳しくはChangelogを参照してください。
6.1 削除されたもの
非推奨化された
image_alt
ヘルパーを削除 (Commit)空の
RecordTagHelper
モジュールを削除(既にrecord_tag_helper
gemに機能が移動済み) (Commit)
6.2 非推奨化
ActionView::Template.finalize_compiled_template_methods
が非推奨化(代替はなし) (Pull Request)config.action_view.finalize_compiled_template_methods
が非推奨化(代替はなし) (Pull Request)options_from_collection_for_select
ビューヘルパーからのprivateモデルメソッドを呼び出すことが非推奨化 (Pull Request)
6.3 主な変更
developmentモードでのみAction Viewキャッシュをクリアしてdevelopmentモードを高速化 (Pull Request)
Railsの全npmパッケージを
@rails
スコープに移動 (Pull Request)登録済みMIMEタイプのフォーマットのみを受け付けるようになった (Pull Request、Pull Request)
サーバー出力のレンダリング中にテンプレートやパーシャルにアロケーションを追加 (Pull Request)
date_select
タグにyear_format
オプションを追加(年の名前をカスタマイズ可能になった) (Pull Request)javascript_include_tag
ヘルパー向けのnonce: true
オプションを追加(Content Security Policy用の自動nonceをサポート) (Pull Request)action_view.finalize_compiled_template_methods
設定を追加(ActionView::Template
ファイナライザを無効または有効にできる) (Pull Request)JavaScriptの
confirm
呼び出しを自分自身に切り出し、rails_ujs
のメソッドをオーバーライド可能にした (Pull Request)action_controller.default_enforce_utf8
設定オプションを追加(UTF-8エンコーディングの強制を制御、デフォルトはfalse
) (Pull Request)localeキーで
submit_tag
をサポートするI18nキースタイルをサポートAdd I18n key style support for locale keys to submit tags. (Pull Request)
7 Action Mailer
変更点について詳しくはChangelogを参照してください。
7.1 削除されたもの
7.2 非推奨化
ActionMailer::Base.receive
を非推奨化(今後はAction Mailboxを利用) (Commit)DeliveryJob
とParameterized::DeliveryJob
を非推奨化(今後はMailDeliveryJob
を利用) (Pull Request)
7.3 主な変更
MailDeliveryJob
を追加: 通常メールとパラメータ化メールのどちらの配信にも使える (Pull Request)カスタムのメール配信ジョブをAction Mailerテストのアサーションで使えるようになった (Pull Request)
マルチパートのメールへのテンプレート名の指定を、アクション名だけではなくブロックでできるようになった (Pull Request)
perform_deliveries
をdeliver.action_mailer
通知のペイロードに追加 (Pull Request)perform_deliveries
がfalseの場合のログメッセージを改善し、メール送信がスキップしたことがわかるようになった (Pull Request)assert_enqueued_email_with
をブロックなしで呼び出せるようになった (Pull Request)キューに入った
assert_emails
ブロック内のメール配信ジョブを実行するようになった (Pull Request)ActionMailer::Base
のobserverやinterceptorの登録を解除できるようになった (Pull Request)
8 Active Record
変更点について詳しくはChangelogを参照してください。
8.1 削除されたもの
非推奨の
#set_state
をトランザクションオブジェクトから削除 (Commit)非推奨の
#supports_statement_cache?
をデータベースアダプタから削除 (Commit)非推奨の
#insert_fixtures
をデータベースアダプタから削除 (Commit)非推奨の
ActiveRecord::ConnectionAdapters::SQLite3Adapter#valid_alter_table_type?
を削除 (Commit)ブロックが1つ渡されたときにカラム名を
sum
に渡すサポートを廃止 (Commit)ブロックが1つ渡されたときにカラム名を
count
に渡すサポートを廃止 (Commit)arelへのリレーション内で「missing」メソッドの委譲サポートを廃止 (Commit)
クラスのprivateメソッドへのリレーション内で「missing」メソッドの委譲サポートを廃止 (Commit)
#cache_key
のタイムスタンプ名指定のサポートを廃止 (Commit)非推奨の
ActiveRecord::Migrator.migrations_path=
を削除 (Commit)非推奨の
expand_hash_conditions_for_aggregates
を削除 (Commit)
8.2 非推奨化
uniquenessバリデータで、大文字小文字が一致しない照合順序(collation)比較を非推奨化 (Commit)
レシーバのスコープが漏洩している場合のクラスレベルのクエリ送信メソッドを非推奨化 (Pull Request)
config.activerecord.sqlite3.represent_boolean_as_integer
を非推奨化 (Commit)migrations_paths
をconnection.assume_migrated_upto_version
に渡すことを非推奨化 (Commit)ActiveRecord::Result#to_hash
を非推奨化、今後はActiveRecord::Result#to_a
を用いる (Commit)DatabaseLimits
の以下のメソッドを非推奨化:column_name_length
、table_name_length
、columns_per_table
、indexes_per_table
、columns_per_multicolumn_index
、sql_query_length
、joins_per_query
(Commit)update_attributes
/!
を非推奨化、今後はupdate
/!
を用いる (Commit)
8.3 主な変更
SQLite3の最小バージョンを1.4に上げる (Pull Request)
rails db:prepare
を追加: データベースが存在しない場合は作成してからマイグレーションを実行する (Pull Request)after_save_commit
コールバックを追加(after_commit :hook, on: [ :create, :update ]
のショートカット) (Pull Request)ActiveRecord::Relation#extract_associated
を追加: 関連付けられたレコードをリレーションから切り出す (Pull Request)ActiveRecord::Relation#annotate
を追加:ActiveRecord::Relation
クエリにSQLコメントを追加する (Pull Request)データベースにOptimizer Hintsを設定するサポートを追加 (Pull Request)
一括INSERTを行う
insert_all
/insert_all!
/upsert_all
メソッドを追加 (Pull Request)rails db:seed:replant
を追加: 現在の環境で各データベースのテーブルをTRUNCATEしてseedを読み込む (Pull Request)reselect
メソッドを追加(unscope(:select).select(fields)
のショートハンド) (Pull Request)すべてのenum値についてネガティブスコープを追加 (Pull Request)
#destroy_by
と#delete_by
を追加: 条件付き削除を実行 (Pull Request)データベース接続を自動的に切り替える機能を追加 (Pull Request)
1つのブロック内でデータベースへの書き込みを防ぐ機能を追加 (Pull Request)
接続切り替え用APIを追加(マルチデータベースサポート用) (Pull Request)
マイグレーションのタイムスタンプにデフォルトで
precision: 6
を指定 (Pull Request)MySQLでテキストやblobのサイズを変更する
:size
オプションを追加 (Pull Request)dependent: :nullify
ストラテジーのポリモーフィック関連付けで外部キーと外部typeカラムを両方ともNULLに設定 (Pull Request)ActionController::Parameters
の許可されたインスタンスをActiveRecord::Relation#exists?
の引数として渡せるようになった (Pull Request)Ruby 2.6で導入されたエンドレスrangeを
#where
でサポート (Pull Request)MySQLのテーブル作成オプションで
ROW_FORMAT=DYNAMIC
をデフォルトで設定 (Pull Request)ActiveRecord.enum
で生成されたスコープを無効にする機能を追加 (Pull Request)カラムの暗黙のORDERが設定可能になった (Pull Request)
PostgreSQLの最小バージョンが9.3になり、9.1や9.2のサポートを廃止 (Pull Request)
enumの値がfrozenになり、変更しようとするとエラーがraiseするようになった (Pull Request)
ActiveRecord::StatementInvalid
エラーのSQLがerrorプロパティになり、SQLバインドを独立したerrorプロパティとして含まれるようになった (Pull Request):if_not_exists
オプションをcreate_table
に追加 (Pull Request)rails db:schema:cache:dump
やrails db:schema:cache:clear
にマルチデータベースのサポートを追加 andrails db:schema:cache:clear
. (Pull Request)ActiveRecord::Base.connected_to
のデータベースハッシュでハッシュやURLの設定をサポート (Pull Request)MySQLでデフォルト式や式インデックスをサポート (Pull Request)
change_table
マイグレーションヘルパーにindex
オプションを追加 (Pull Request)マイグレーションでの
transaction
のrevertを修正(従来のtransaction
内のコマンドが修正された) (Pull Request)ActiveRecord::Base.configurations=
がシンボルのハッシュで設定されるようになった (Pull Request)レコードが実際に保存された場合にのみカウンタキャッシュが更新されるよう修正 (Pull Request)
SQLiteアダプタで式インデックスをサポート (Pull Request)
関連付けられたレコードのautosaveコールバックをサブクラスで再定義できるようになった (Pull Request)
MySQLの最小バージョンが5.5.8に上がった (Pull Request)
MySQLでデフォルトでutf8mb4文字セットが使われるようになった (Pull Request)
#inspect
の個人情報データをフィルタで除外する機能を追加 (Pull Request, Pull Request)ActiveRecord::Base.configurations
の戻り値をハッシュからオブジェクトに変更 (Pull Request)データベース設定にアドバイザリーロック(勧告ロック)を無効にする設定を追加 (Pull Request)
SQLite3アダプタの
alter_table
メソッドを更新し、外部キーをリストアするようになった (Pull Request)remove_foreign_key
の:to_table
オプションをロールバックできるようにした (Pull Request)MySQLのtime型でprecisionが指定されている場合のデフォルト値を修正 (Pull Request)
touch
オプションの挙動をPersistence#touch
の挙動に合わせて修正 (Pull Request)マイグレーションでカラム定義が重複した場合に例外をraiseするようになった (Pull Request)
SQLiteの最小バージョンが3.8に上がった (Pull Request)
子レコードが重複している場合に親レコードが保存されない問題を修正 (Pull Request)
Associations::CollectionAssociation#size
やAssociations::CollectionAssociation#empty?
で読み込み済みの関連idが存在する場合はそれを使うようになった (Pull Request)リクエストされた関連付けが一部のレコードにない場合にポリモーフィック関連付けをプリロードするサポートを追加 (Commit)
touch_all
メソッドをActiveRecord::Relation
に追加 (Pull Request)ActiveRecord::Base.base_class?
述語メソッドを追加 (Pull Request)ActiveRecord::Store.store_accessor
にカスタムprefix/suffixオプションを追加 (Pull Request)ActiveRecord::Base.create_or_find_by
/!
を追加: データベースのunique制限に依存する形でActiveRecord::Base.find_or_create_by
/!
でSELECTやINSERTの競合を扱う (Pull Request)Relation#pick
を追加(pluck
で単独の値を取るショートハンド) (Pull Request)
9 Active Storage
変更点について詳しくはChangelogを参照してください。
9.1 削除されたもの
9.2 非推奨化
config.active_storage.queue
を非推奨化(今後はconfig.active_storage.queues.analysis
やconfig.active_storage.queues.purge
を利用) (Pull Request)ActiveStorage::Downloading
を非推奨化(今後はActiveStorage::Blob#open
を利用) (Commit)画像のvariant生成に
mini_magick
を直接使うことを非推奨化(今後はimage_processing
を利用) (Commit)Active StorageのImageProcessing変換の
:combine_options
を非推奨化(代替はなし) (Commit)
9.3 主な変更
BMP画像variant生成のサポートを追加(Pull Request)
TIFF画像variant生成のサポートを追加 (Pull Request)
プログレッシブJPEG画像variant生成のサポートを追加 (Pull Request)
ActiveStorage.routes_prefix
を追加(Active Storageで生成されたルーティングの設定用) (Pull Request)ActiveStorage::DiskController#show
でリクエストされたファイルがディスクサービス上で見つからない場合に「404 Not Found」レスポンスを生成するようになった (Pull Request)ActiveStorage::Blob#download
やActiveStorage::Blob#open
でリクエストされたファイルが見つからない場合にActiveStorage::FileNotFoundError
をraiseするようになった (Pull Request)ジェネリックな
ActiveStorage::Error
クラスを追加(Active Storageの例外はこれを継承する) (Commit)レコードにアップロードされたファイルを即座でない形で保存するとストレージで永続化するようになった (Pull Request)
添付ファイルのコレクションへの代入を、追加ではなく既存ファイルを置き換える(
@user.update!(images: [ … ])
のように)オプション。この振る舞いを制御するにはconfig.active_storage.replace_on_assign_to_many
を使うこと。 (Pull Request、 Pull Request)既存のActive Recordリフレクションメカニズムで定義された添付ファイルをリフレクションできるようになった (Pull Request)
ActiveStorage::Blob#open
を追加(blobをディスク上のテンプレートにダウンロードしてtempfileをyieldする) (Commit)Google Cloud Storageからのストリーミングダウンロードをサポート(
google-cloud-storage
gem 1.11以降が必要) (Pull Request)Active Storageのvariantに
image_processing
gemを使うようになった(mini_magick
の利用を直接置き換える) (Pull Request
10 Active Model
変更点について詳しくはChangelogを参照してください。
10.1 削除されたもの
10.2 非推奨化
10.3 主な変更
ActiveModel::Errors#full_message
のフォーマットをカスタマイズする設定オプションを追加 (Pull Request)has_secure_password
の属性名を設定するサポートを追加 (Pull Request)#slice!
メソッドをActiveModel::Errors
に追加 (Pull Request)ActiveModel::Errors#of_kind?
を追加: 特定のエラーが存在するかどうかをチェックする (Pull Request)ActiveModel::Serializers::JSON#as_json
のタイムスタンプを修正 (Pull Request)数値バリデータを修正(Active Recordを除きbefore_type_castの値を引き続き使う) (Pull Request)
BigDecimal
やFloat
数値の場合の数値の等しさのバリデーションを修正(バリデーションする双方をBigDecimal
に変換) (Pull Request)マルチパラメータのtimeハッシュを変換するときの年の値を修正 (Pull Request)
boolean属性上のfalsyなbooleanシンボルをfalseに型変換するようになった (Pull Request)
ActiveModel::Type::Date
のvalue_from_multiparameter_assignment
でパラメータを変換するときに正しい日付を返すようになった (Pull Request)フェッチした訳文がエラーの場合に、親のロケールにフォールバックしてから
:errors
名前空間にフォールバックするようになった (Pull Request)
11 Active Support
変更点について詳しくはChangelogを参照してください。
11.1 削除されたもの
非推奨の
#acronym_regex
をInflections
から削除 (Commit)非推奨の
Module#reachable?
を削除 (Commit)Kernel#
を削除(代替はなし) (Pull Request)
11.2 非推奨化
String#first
やString#last
で負のinteger引数を渡すことを非推奨化 (Pull Request)ActiveSupport::Multibyte::Unicode#downcase/upcase/swapcase
を非推奨化(今後はString#downcase/upcase/swapcase
を利用) (Pull Request)ActiveSupport::Multibyte::Unicode#normalize
とActiveSupport::Multibyte::Chars#normalize
を非推奨化(今後はString#unicode_normalize
を利用) (Pull Request)ActiveSupport::Multibyte::Chars.consumes?
を非推奨化(今後はString#is_utf8?
を利用) (Pull Request)ActiveSupport::Multibyte::Unicode#pack_graphemes(array)
とActiveSupport::Multibyte::Unicode#unpack_graphemes(string)
を非推奨化(今後はそれぞれarray.flatten.pack("U*")
とstring.scan(/\X/).map(&:codepoints)
を利用) (Pull Request)
11.3 主な変更
パラレルテストのサポートを追加 (Pull Request)
String#strip_heredoc
で文字列のfrozen状態が保護されるようになった (Pull Request)String#truncate_bytes
を追加(マルチバイト文字や書記素(grapheme)クラスタを壊さない形で文字列を最大バイトサイズまでtruncateする) (Pull Request)delegate
メソッドにprivate
オプションを追加(privateメソッドへの委譲に使う)。このオプションはtrue
/false
を値に取れる。 (Pull Request)ActiveSupport::Inflector#ordinal
やActiveSupport::Inflector#ordinalize
でI18nによる訳文への置き換えをサポート (Pull Request)before?
メソッドとafter?
メソッドを以下に追加:Date
、DateTime
、Time
、TimeWithZone
(Pull Request)入力でUnicode文字とエスケープ文字が混在している場合に
URI.unescape
が失敗するバグを修正Fix bug where
URI.unescape
would fail with mixed Unicode/escaped character input. (Pull Request)圧縮が有効な場合に
ActiveSupport::Cache
のストレージサイズが激増するバグを修正 (Pull Request)Redisキャッシュストア:
delete_matched
がRedisサーバーをブロックしないようになった (Pull Request)ActiveSupport::TimeZone::MAPPING
で定義されたタイムゾーンのtzinfoデータが見つからない場合にActiveSupport::TimeZone.all
が失敗するバグを修正 (Pull Request)Enumerable#index_with
を追加(渡されたブロックかデフォルト引数の値を持つenumerableからハッシュを作成できる) (Pull Request)Range#===
メソッドやRange#cover?
メソッドをRange
の引数で使えるようになった (Pull Request)RedisCacheStoreの
increment/decrement
操作でキーの期限をサポート (Pull Request)LogSubscriberイベントにCPU timeとidle timeとアロケーションの機能を追加 (Pull Request)
ActiveSupport::NotificationsシステムにEventObjectのサポートを追加 (Pull Request)
nil
エントリをキャッシュしないオプションを追加(ActiveSupport::Cache#fetch
にskip_nil
オプションが新たに追加) (Pull Request)Array#extract!
を追加(ブロックがtrueを返す要素を削除して返す) (Pull Request)HTML-safe文字列をスライス後もHTML-safeに維持 (Pull Request)
ログでの定数autoloadのトレースをサポート (Commit)
unfreeze_time
をtravel_back
のエイリアスとして定義 (Pull Request)ActiveSupport::TaggedLogging.new
を変更(引数のロガーインスタンスを改変するのではなく新しいロガーインスタンスを返すようになった) (Pull Request)#delete_prefix
メソッド、#delete_suffix
メソッド、#unicode_normalize
メソッドをHTML-safeではないメソッドとして扱うようになった (Pull Request)#without
がActiveSupport::HashWithIndifferentAccess
でシンボル引数の場合に失敗することがあったバグを修正 (Pull Request)メソッド名変更(
Module#parent
をmodule_parent
に、Module#parents
をmodule_parents
に、Module#parent_name
をmodule_parent_name
に) (Pull Request)ActiveSupport::ParameterFilter
を追加 (Pull Request)durationにfloatが追加されたときに秒に丸められる問題を修正 (Pull Request)
#to_options
をActiveSupport::HashWithIndifferentAccess
の#symbolize_keys
のエイリアスに設定 (Pull Request)あるConcernで同じブロックを複数回includeした場合に例外をraiseしないようになった (Pull Request)
ActiveSupport::CacheStore#fetch_multi
に渡されたキーの順序を維持するようになった (Pull Request)String#safe_constantize
を修正(定数参照の大文字小文字が誤っている場合にLoadError
をスローしないようになった) (Pull Request)Hash#deep_transform_values
とHash#deep_transform_values!
を追加 (Commit)ActiveSupport::HashWithIndifferentAccess#assoc
を追加 (Pull Request)before_reset
コールバックをCurrentAttributes
に追加し、それと対称的になるようafter_reset
をresets
のエイリアスとして定義 (Pull Request)ActiveSupport::Notifications.unsubscribe
を変更(Regexなどのマルチパターンサブスクライバを正しく扱えるようになった) (Pull Request)Zeitwerkを用いる新しいオートローディングメカニズムを追加 (Commit)
Array#including
とEnumerable#including
を追加(コレクションを簡単に拡大できるようになった) (Commit)メソッドをリネーム(
Array#without
をArray#excluding
に、Enumerable#without
をEnumerable#excluding
に、古いメソッド名はエイリアスとして残される) (Commit)transliterate
とparameterize
にlocale
を提供 (Pull Request)Time#advance
を修正(1001-03-07より前の日付を正しく扱えるようになった) (Pull Request)ActiveSupport::Notifications::Instrumenter#instrument
を更新(ブロックを渡さなくても使えるようになった) (Pull Request)サブクラスのトラッカーで弱い参照を用いるようになった(無名サブクラスがGCされるようになった) (Pull Request)
テストメソッドを
with_info_handler
で呼ぶとminitestフックのプラグインを動かせるようになった (Commit)html_safe?
のステータスをActiveSupport::SafeBuffer#*
で維持するようになった (Pull Request)
12 Active Job
変更点について詳しくはChangelogを参照してください。
12.1 削除されたもの
- Qu gemのサポートを削除 (Pull Request)
12.2 非推奨化
12.3 主な変更
Active Jobの引数にカスタムシリアライザのサポートを追加 (Pull Request)
キューが送信されたタイムゾーンでActive Jobを実行するサポートを追加 they were enqueued. (Pull Request)
retry_on
やdiscard_on
に複数の例外を渡せるようになった (Commit)assert_enqueued_with
やassert_enqueued_email_with
をブロックなしで呼べるようになった (Pull Request)enqueue
やenqueue_at
の通知を、after_enqueue
でラップするのではなくaround_enqueue
でラップするようになった (Pull Request)perform_enqueued_jobs
をブロックなしで呼べるようになった (Pull Request)assert_performed_with
をブロックなしで呼べるようになった (Pull Request):queue
オプションをジョブのアサーションやヘルパーに追加 (Pull Request)Active Jobにretryやdiscardなどのフックを追加 (Pull Request)
ジョブ実行時に引数のサブセットをテストする方法を追加 (Pull Request)
Active Jobテストヘルパーから返されるジョブに、デシリアライズされた引数が含まれるようになった (Pull Request)
Active JobアサーションヘルパーでProcを受け取れるようになった(
only
用) keyword. (Pull Request)アサーションヘルパーで、ジョブの引数からマイクロセカンドやナノセカンドの桁を取り除けるようになった (Pull Request)
13 Ruby on Rails Guides
変更点について詳しくはChangelogを参照してください。
13.1 主な変更
Active Recordでのマルチプルデータベースガイドを追加 (Pull Request)
定数オートローディングのトラブルシューティングに関するセクションを追加 (Commit)
Action Mailbox Basicsガイドを追加 (Pull Request)
Action Text Overviewガイドを追加 (Pull Request)
14 クレジット表記
Railsを頑丈かつ安定したフレームワークにするために多大な時間を費やしてくださった多くの開発者については、Railsコントリビューターの完全なリストを参照してください。これらの方々全員に深く敬意を表明いたします。
支援・協賛
Railsガイドは下記のサポーターから継続的な支援を受けています。