Rails 6.0の注目ポイント:
本リリースノートでは、主要な変更についてのみ説明します。多数のバグ修正および変更点については、GitHubのRailsリポジトリにある各コミットのchangelogを参照してください。
既存のアプリケーションをアップグレードするのであれば、その前に質のよいテストカバレッジを用意するのはよい考えです。アプリケーションがRails 5.2までアップグレードされていない場合は先にそれを完了し、アプリケーションが正常に動作することを十分確認してからRails 6.0にアップデートしてください。アップグレードの注意点などについてはRailsアップグレードガイドを参照してください。
Action Mailboxは、受信メールをコントローラ的なメールボックスにルーティングできます。Action Mailboxの詳細はAction Mailboxの基礎を参照してください。
Action Textは、リッチテキストコンテンツと編集機能をRailsで使えるようにします。Trixエディタは、リンク/引用/リスト/画像埋め込み/ギャラリーなどあらゆるものを扱えます。Trixエディタで生成されるリッチテキストコンテンツは独自のRichTextモデルに保存され、アプリ内にある既存のActive Recordモデルに関連付けられます。 埋め込み画像などの添付ファイルは自動的にActive Storageを用いて保存され、RichTextモデルに関連付けられます。
Action Textについて詳しくはガイドのAction Text の概要を参照してください。
並列テスト(parallel testing)機能によってテストスイートを並列化できます。デフォルトではプロセスをforkしますが、スレッド(threading)もサポートされます。テストを並列実行することで、テストスイート全体の実行時間を削減できます。
Action Cableテストツールを用いて、Action Cableの機能を任意のレベル(接続レベル/チャネルレベル/ブロードキャストレベル)でテストできます。
変更点について詳しくはChangelogを参照してください
プラグインテンプレートの非推奨化after_bundle
ヘルパーを削除
(Commit)
config.ru
でアプリケーションクラスをrun
の引数として用いる非推奨サポートを削除
(Commit)
rails
コマンドから非推奨environment
引数を削除
(Commit)
ジェネレータとテンプレートから非推奨のcapify!
メソッドを削除
(Commit)
非推奨のconfig.secret_token
設定を削除
(Commit)
Rackサーバー名を正規の引数としてrails server
に渡すことを非推奨化
(Pull Request)
サーバーIPの指定にHOST
環境変数を使えるようにするサポートを非推奨化
(Pull Request)
config_for
から返されるハッシュにシンボルでないキーでアクセスすることを非推奨化
(Pull Request)
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)
変更点について詳しくはChangelogを参照してください。
ActionCable.startDebugging()
とActionCable.stopDebugging()
をActionCable.logger.enabled
に置き換え(Pull Request) 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)
変更点について詳しくはChangelogを参照してください。
非推奨化されたfragment_cache_key
ヘルパーを削除、今後はcombined_fragment_cache_key
を用いる
(Commit)
ActionDispatch::TestResponse
から非推奨化された次のメソッドを削除: #success?
(今後は#successful?
を使う)、#missing?
(今後は#not_found?
を使う)、#error?
(今後は#server_error?
を使う)
(Commit)
ActionDispatch::Http::ParameterFilter
を非推奨化、今後はActiveSupport::ParameterFilter
を用いる
(Pull Request)
コントローラレベルのforce_ssl
を非推奨化、今後はconfig.force_ssl
を用いる
(Pull Request)
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にフックして例外を処理する手段の1つ)
(Pull Request)
1リクエストに付きContent-Security-Policy(CSP)nonceヘッダー値を1つしか出力しないようになった (Pull Request)
Railsのコントローラで明示的にincludeできるデフォルトのヘッダー設定で主に用いられるモジュールを追加 (Pull Request)
#dig
をActionDispatch::Request::Session
に追加
(Pull Request)
変更点について詳しくはChangelogを参照してください。
非推奨化されたimage_alt
ヘルパーを削除
(Commit)
空のRecordTagHelper
モジュールを削除(既にrecord_tag_helper
gemに機能が移動済み)
(Commit)
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)
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キースタイルをサポート
(Pull Request)
変更点について詳しくはChangelogを参照してください。
ActionMailer::Base.receive
を非推奨化(今後はAction Mailboxを利用)
(Commit)
DeliveryJob
とParameterized::DeliveryJob
を非推奨化(今後はMailDeliveryJob
を利用)
(Pull Request)
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)
変更点について詳しくはChangelogを参照してください。
非推奨の#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)
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)
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
にマルチデータベースのサポートを追加
(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)
変更点について詳しくはChangelogを参照してください。
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)
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
変更点について詳しくはChangelogを参照してください。
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)
変更点について詳しくはChangelogを参照してください。
非推奨の#acronym_regex
をInflections
から削除
(Commit)
非推奨のModule#reachable?
を削除
(Commit)
Kernel#`
を削除(代替はなし)
(Pull Request)
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)
並列テストのサポートを追加 (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
が失敗するバグを修正
(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)
変更点について詳しくはChangelogを参照してください。
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)
変更点について詳しくはChangelogを参照してください。
Active Recordでのマルチプルデータベースガイドを追加 (Pull Request)
定数の自動読み込みのトラブルシューティングに関するセクションを追加 (Commit)
Action Mailbox Basicsガイドを追加 (Pull Request)
Action Text Overviewガイドを追加 (Pull Request)
Railsを頑丈かつ安定したフレームワークにするために多大な時間を費やしてくださった多くの開発者については、Railsコントリビューターの完全なリストを参照してください。これらの方々全員に深く敬意を表明いたします。
Railsガイドは GitHub の yasslab/railsguides.jp で管理・公開されております。本ガイドを読んで気になる文章や間違ったコードを見かけたら、気軽に Pull Request を出して頂けると嬉しいです。Pull Request の送り方については GitHub の README をご参照ください。
原著における間違いを見つけたら『Rails のドキュメントに貢献する』を参考にしながらぜひ Rails コミュニティに貢献してみてください 🛠💨✨
本ガイドの品質向上に向けて、皆さまのご協力が得られれば嬉しいです。
Railsガイド運営チーム (@RailsGuidesJP)
Railsガイドは下記の協賛企業から継続的な支援を受けています。支援・協賛にご興味あれば協賛プランからお問い合わせいただけると嬉しいです。