edge
詳細はrubyonrails.orgで: もっとRuby on Rails

Ruby on Rails 5.2 リリースノート

Rails 5.2 のハイライト:

これらのリリースノートは主要な変更のみをカバーしています。さまざまなバグ修正や変更については、変更ログを参照するか、GitHubのRailsリポジトリのコミットのリストを確認してください。

1 Rails 5.2 へのアップグレード

既存のアプリケーションをアップグレードする場合は、アップグレード前に十分なテストカバレッジを持つことが重要です。また、まずRails 5.1にアップグレードし、アプリケーションが正常に動作することを確認してから、Rails 5.2への更新を試みることをお勧めします。アップグレード時に注意すべき点のリストは、Ruby on Railsのアップグレードガイドで利用できます。

2 主要な機能

2.1 Active Storage

プルリクエスト

Active Storageは、Amazon S3、Google Cloud Storage、またはMicrosoft Azure Storageなどのクラウドストレージサービスにファイルをアップロードし、それらのファイルをActive Recordオブジェクトに添付することを容易にします。開発およびテスト用のローカルディスクベースのサービスが付属しており、バックアップやマイグレーションのためにファイルを下位サービスにミラーリングすることもサポートしています。Active Storageについては、Active Storageの概要ガイドを参照してください。

2.2 Redis Cache Store

プルリクエスト

Rails 5.2には、組み込みのRedisキャッシュストアが付属しています。これについては、Railsでのキャッシュガイドで詳しく説明しています。

2.3 HTTP/2 Early Hints

プルリクエスト

Rails 5.2は、HTTP/2 Early Hintsをサポートしています。Early Hintsを有効にしてサーバーを起動するには、bin/rails server--early-hintsを渡します。

2.4 Credentials

プルリクエスト

config/credentials.yml.encファイルが追加され、本番アプリケーションの秘密情報を保存することができるようになりました。これにより、config/master.keyファイルまたはRAILS_MASTER_KEY環境変数で暗号化されたリポジトリに対して、サードパーティのサービスの認証情報を直接保存することができます。これは、Rails 5.1で導入されたRails.application.secretsと暗号化されたシークレットを最終的に置き換えるものです。さらに、Rails 5.2では、Credentialsの基礎となるAPIを公開しているため、他の暗号化された設定、キー、ファイルを簡単に扱うことができます。これについては、Railsアプリケーションのセキュリティガイドで詳しく説明しています。

2.5 Content Security Policy

プルリクエスト

Rails 5.2には、アプリケーションのContent Security Policyを設定するための新しいDSLが付属しています。グローバルなデフォルトポリシーを設定し、リソースごとにオーバーライドすることができ、マルチテナントアプリケーションのアカウントサブドメインなど、パーリクエストの値をヘッダーに注入するためにラムダを使用することもできます。これについては、Railsアプリケーションのセキュリティガイドで詳しく説明しています。

3 Railties

詳細な変更については、Changelogを参照してください。

3.1 廃止予定

  • ジェネレータとテンプレートのcapify!メソッドを廃止します。 (Pull Request)

  • rails dbconsoleおよびrails consoleコマンドに環境名を通常の引数として渡すことは廃止されました。 代わりに-eオプションを使用する必要があります。 (Commit)

  • Rails::Applicationのサブクラスを使用してRailsサーバーを起動することは廃止されました。 (Pull Request)

  • Railsプラグインテンプレートのafter_bundleコールバックを廃止します。 (Pull Request)

3.2 注目すべき変更

  • すべての環境で読み込まれるconfig/database.ymlに共有セクションを追加しました。 (Pull Request)

  • プラグインジェネレータにrailtie.rbを追加しました。 (Pull Request)

  • tmp:clearタスクでスクリーンショットファイルをクリアします。 (Pull Request)

  • bin/rails app:updateを実行する際に未使用のコンポーネントをスキップします。 初期のアプリケーション生成時にAction Cable、Active Recordなどをスキップした場合、アップデートタスクもそれらのスキップを尊重します。 (Pull Request)

  • 3レベルのデータベース構成を使用している場合、rails dbconsoleコマンドにカスタム接続名を渡すことができるようになりました。 例:bin/rails dbconsole -c replica。 (Commit)

  • consoleおよびdbconsoleコマンドを実行する際に、環境名のショートカットを適切に展開します。 (Commit)

  • デフォルトのGemfilebootsnapを追加しました。 (Pull Request)

  • rails runnerでスクリプトを標準入力から実行するためのプラットフォームに依存しない方法として-をサポートします。 (Pull Request)

  • 新しいRailsアプリケーションが作成される際に、Gemfileruby x.x.xバージョンを追加し、現在のRubyバージョンを含む.ruby-versionルートファイルを作成します。 (Pull Request)

  • プラグインジェネレータに--skip-action-cableオプションを追加しました。 (Pull Request)

  • プラグインジェネレータのGemfilegit_sourceを追加しました。 (Pull Request)

  • Railsプラグインでbin/railsを実行する際に未使用のコンポーネントをスキップします。 (Commit)

  • ジェネレータアクションのインデントを最適化しました。 (Pull Request)

  • ルートのインデントを最適化しました。 (Pull Request)

  • プラグインジェネレータに--skip-yarnオプションを追加しました。 (Pull Request)

  • ジェネレータのgemメソッドに複数のバージョン引数をサポートします。 (Pull Request)

  • 開発およびテスト環境でアプリケーション名からsecret_key_baseを派生させます。 (Pull Request)

  • デフォルトのGemfilemini_magickをコメントとして追加しました。 (Pull Request)

  • rails newおよびrails plugin newはデフォルトでActive Storageを取得します。 --skip-active-storageを使用してActive Storageをスキップする機能を追加し、--skip-active-recordが使用された場合には自動的にスキップします。 (Pull Request)

4 Action Cable

詳細な変更については、Changelogを参照してください。

4.1 削除

  • 廃止予定のイベント駆動型Redisアダプタを削除しました。 (Commit)

4.2 注目すべき変更

  • cable.ymlでhostportdbpasswordオプションをサポートしました。 (Pull Request)

  • PostgreSQLアダプタを使用する場合に、長いストリーム識別子をハッシュ化します。 (Pull Request)

5 Action Pack

詳細な変更については、Changelogを参照してください。

5.1 削除

  • 廃止された ActionController::ParamsParser::ParseError を削除しました。 (Commit)

5.2 廃止予定

  • ActionDispatch::TestResponse#success?#missing?#error? のエイリアスを廃止予定としました。 (Pull Request)

5.3 注目すべき変更

  • フラグメントキャッシュに再利用可能なキャッシュキーのサポートを追加しました。 (Pull Request)

  • フラグメントのキャッシュキーの形式を変更し、キーの変更をデバッグしやすくしました。 (Pull Request)

  • GCM を使用した AEAD 暗号化されたクッキーとセッションを追加しました。 (Pull Request)

  • デフォルトで CSRF 保護を有効にしました。 (Pull Request)

  • サーバーサイドで署名/暗号化されたクッキーの有効期限を強制します。 (Pull Request)

  • クッキーの :expires オプションが ActiveSupport::Duration オブジェクトをサポートするようになりました。 (Pull Request)

  • Capybara の登録済み :puma サーバー設定を使用するようにしました。 (Pull Request)

  • キーローテーションのサポートを持つクッキーミドルウェアを簡素化しました。 (Pull Request)

  • HTTP/2 の Early Hints を有効にする機能を追加しました。 (Pull Request)

  • システムテストにヘッドレスChromeのサポートを追加しました。 (Pull Request)

  • redirect_back メソッドに :allow_other_host オプションを追加しました。 (Pull Request)

  • assert_recognizes がマウントされたエンジンをトラバースするようにしました。 (Pull Request)

  • Content-Security-Policy ヘッダーを設定するための DSL を追加しました。 (Pull Request, Commit, Commit)

  • モダンなブラウザでサポートされている最も人気のあるオーディオ/ビデオ/フォント MIME タイプを登録しました。 (Pull Request)

  • システムテストのスクリーンショット出力のデフォルトを inline から simple に変更しました。 (Commit)

  • システムテストにヘッドレスFirefoxのサポートを追加しました。 (Pull Request)

  • デフォルトのヘッダーセットにセキュアな X-Download-OptionsX-Permitted-Cross-Domain-Policies を追加しました。 (Commit)

  • システムテストを、ユーザーが別のサーバーを手動で指定しない限り、デフォルトのサーバーとして Puma を設定するように変更しました。 (Pull Request)

  • デフォルトのヘッダーセットに Referrer-Policy ヘッダーを追加しました。 (Commit)

  • ActionController::Parameters#eachHash#each の動作に一致するようにしました。 (Pull Request)

  • Rails UJS の自動ノンス生成のサポートを追加しました。 (Commit)

  • HSTS のデフォルトの最大有効期間を 31536000 秒(1年)に更新し、https://hstspreload.org/ の最小 max-age 要件を満たすようにしました。 (Commit)

  • cookiesto_hto_hash のエイリアスメソッドを追加しました。 sessionto_hashto_h のエイリアスメソッドを追加しました。 (Commit)

6 Action View

詳細な変更については、Changelog を参照してください。

6.1 削除

  • 廃止された Erubis ERB ハンドラーを削除しました。 (Commit)

6.2 廃止予定

  • image_tag で生成される画像にデフォルトの alt テキストを追加するために使用されていた image_alt ヘルパーを廃止予定としました。 (Pull Request)

6.3 注目すべき変更

  • JSON Feeds をサポートするために、auto_discovery_link_tag:json タイプを追加しました。 (Pull Request)

  • image_tag ヘルパーに srcset オプションを追加しました。 (Pull Request)

  • field_error_procoptgroup とセレクトディバイダー option をラップする問題を修正しました。 (Pull Request)

  • form_with がデフォルトで ID を生成するように変更しました。 (Commit)

  • preload_link_tag ヘルパーを追加しました。 (Pull Request)

  • グループ化されたセレクトでグループメソッドとして呼び出し可能なオブジェクトの使用を許可しました。 (Pull Request)

7 Action Mailer

詳細な変更については、Changelogを参照してください。

7.1 注目すべき変更点

  • Action Mailerクラスが配信ジョブを設定できるようになりました。 (Pull Request)

  • assert_enqueued_email_withテストヘルパーを追加しました。 (Pull Request)

8 Active Record

詳細な変更については、Changelogを参照してください。

8.1 削除されたもの

  • 廃止された#migration_keysを削除しました。 (Pull Request)

  • Active Recordオブジェクトの型変換時にquoted_idへの廃止されたサポートを削除しました。 (Commit)

  • index_name_exists?から廃止された引数defaultを削除しました。 (Commit)

  • 関連付けにおいてclass_nameにクラスを渡すことへの廃止されたサポートを削除しました。 (Commit)

  • initialize_schema_migrations_tableinitialize_internal_metadata_tableの廃止されたメソッドを削除しました。 (Commit)

  • supports_migrations?の廃止されたメソッドを削除しました。 (Commit)

  • supports_primary_key?の廃止されたメソッドを削除しました。 (Commit)

  • ActiveRecord::Migrator.schema_migrations_table_nameの廃止されたメソッドを削除しました。 (Commit)

  • #indexesから廃止された引数nameを削除しました。 (Commit)

  • #verify!から廃止された引数を削除しました。 (Commit)

  • .error_on_ignored_order_or_limitの廃止された設定を削除しました。 (Commit)

  • #scope_chainの廃止されたメソッドを削除しました。 (Commit)

  • #sanitize_conditionsの廃止されたメソッドを削除しました。 (Commit)

8.2 廃止予定

  • supports_statement_cache?を廃止しました。 (Pull Request)

  • ActiveRecord::Calculationscountsumに引数とブロックを同時に渡すことを廃止しました。 (Pull Request)

  • Relationarelに委譲することを廃止しました。 (Pull Request)

  • TransactionStateset_stateメソッドを廃止しました。 (Commit)

  • 置換なしでexpand_hash_conditions_for_aggregatesを廃止しました。 (Commit)

8.3 注目すべき変更点

  • 引数なしで動的なフィクスチャアクセサメソッドを呼び出すと、このタイプのすべてのフィクスチャが返されるようになりました。以前はこのメソッドは常に空の配列を返していました。 (Pull Request)

  • Active Record属性リーダーをオーバーライドする際の変更された属性の不一致を修正しました。 (Pull Request)

  • MySQLの降順インデックスをサポートしました。 (Pull Request)

  • bin/rails db:forwardの最初のマイグレーションを修正しました。 (Commit)

  • 現在のマイグレーションが存在しない場合にマイグレーションの移動でUnknownMigrationVersionErrorエラーを発生させるようにしました。 (Commit)

  • データベース構造のダンプにおいて、rakeタスクでSchemaDumper.ignore_tablesを尊重するようにしました。 (Pull Request)

  • ActiveRecord::Base#cache_versionを追加して、新しいバージョン付きエントリを介して再利用可能なキャッシュキーをサポートします。これにより、ActiveRecord::Base#cache_keyはタイムスタンプを含まない安定したキーを返すようになりました。 (Pull Request)

  • キャストされた値がnilの場合にバインドパラメータを作成しないように修正しました。 (Pull Request)

  • パフォーマンスの向上のために、フィクスチャを挿入する際にバルクINSERTを使用します。 (Pull Request)

  • ネストされた結合を表す2つの関係をマージすると、マージされた関係の結合がLEFT OUTER JOINに変換されなくなりました。 (Pull Request)

  • トランザクションを子トランザクションに状態を適用するように修正しました。以前は、ネストされたトランザクションがあり、外側のトランザクションがロールバックされた場合、内側のトランザクションのレコードはまだ永続化されたままでした。これは、親トランザクションの状態を子トランザクションに適用することで修正されました。これにより、内側のトランザクションのレコードが正しく永続化されないようになります。 (Commit)

  • スコープに結合を含めた場合のイーガーローディング/プリローディングの関連修正 (プルリクエスト)

  • sql.active_record 通知のサブスクライバーによって発生したエラーを ActiveRecord::StatementInvalid 例外に変換しないように修正 (プルリクエスト)

  • レコードのバッチ処理 (find_each, find_in_batches, in_batches) の場合、クエリキャッシュをスキップするように修正 (コミット)

  • sqlite3 のブール値のシリアライズを 1 と 0 を使用するように変更 SQLite はネイティブで 1 と 0 を真偽値として認識しますが、以前は 't' と 'f' を認識していませんでした。 (プルリクエスト)

  • マルチパラメータ割り当てを使用して構築された値は、シングルフィールドのフォーム入力でレンダリングする際に、ポストタイプキャスト値を使用するように変更されました。 (コミット)

  • モデルを生成する際に ApplicationRecord はもはや生成されません。生成する必要がある場合は、rails g application_record で作成できます。 (プルリクエスト)

  • Relation#or は、references の値が異なる2つの関連を受け入れるようになりました。referenceswhere によって暗黙的に呼び出される可能性があるためです。 (コミット)

  • Relation#or を使用する場合、共通の条件を抽出し、OR 条件の前に配置するように変更しました。 (プルリクエスト)

  • binary フィクスチャヘルパーメソッドを追加 (プルリクエスト)

  • STI の逆関連を自動的に推測するように変更 (プルリクエスト)

  • ロック待ちタイムアウトが超過した場合に発生する LockWaitTimeout 新しいエラークラスを追加 (プルリクエスト)

  • sql.active_record インストルメンテーションのペイロード名をより具体的なものに更新 (プルリクエスト)

  • データベースからインデックスを削除する際に指定されたアルゴリズムを使用するように変更 (プルリクエスト)

  • Relation#whereSet を渡すと、配列を渡すのと同じように動作するように修正 (コミット)

  • PostgreSQL の tsrange はサブセカンドの精度を保持するように変更 (プルリクエスト)

  • ダーティレコードで lock! を呼び出すとエラーが発生するように修正 (コミット)

  • SQLite アダプタを使用している場合、インデックスの列順序が db/schema.rb に書き込まれないバグを修正 (プルリクエスト)

  • 指定された VERSIONbin/rails db:migrate を修正します。空の VERSIONbin/rails db:migrate を実行すると、VERSION なしと同じように動作します。VERSION の形式をチェックします。マイグレーションバージョン番号またはマイグレーションファイルの名前を許可します。フォーマットが無効な場合はエラーを発生させます。対象のマイグレーションが存在しない場合はエラーを発生させます。 (プルリクエスト)

  • ステートメントタイムアウトが超過した場合に発生する StatementTimeout 新しいエラークラスを追加 (プルリクエスト)

  • update_all は、値を Type#cast に渡す前に Type#serialize に渡すようになりました。これにより、update_all(foo: 'true') は正しくブール値を永続化します。 (コミット)

  • リレーションクエリメソッドで使用する場合、生の SQL フラグメントは明示的にマークする必要があります。 (コミット, コミット)

  • データベースマイグレーションに #up_only を追加し、アップ時にのみ関連するコード(新しいカラムのポピュレートなど)を実行できるようにしました。 (プルリクエスト)

  • ユーザーリクエストによるステートメントのキャンセル時に発生するエラークラス QueryCanceled を追加します。 (プルリクエスト)

  • Relation のインスタンスメソッドと競合するスコープの定義を許可しません。 (プルリクエスト)

  • add_index に PostgreSQL オペレータクラスのサポートを追加します。 (プルリクエスト)

  • データベースクエリの呼び出し元をログに記録します。 (プルリクエスト, プルリクエスト, プルリクエスト)

  • カラム情報をリセットする際に、子孫の属性メソッドを未定義にします。 (プルリクエスト)

  • limitoffset を使用した delete_all のためのサブセレクトを使用します。 (コミット)

  • limit() と一緒に使用した場合の first(n) の不整合を修正します。 first(n) ファインダーは limit() を尊重するようになり、relation.to_a.first(n) の動作とも一貫し、last(n) の振る舞いとも一致します。 (プルリクエスト)

  • 未保存の親インスタンスでのネストした has_many :through 関連を修正します。 (コミット)

  • 削除されるレコードを通じて削除する際に関連の条件を考慮します。 (コミット)

  • save または save! の呼び出し後に破壊されたオブジェクトの変更を許可しません。 (コミット)

  • left_outer_joins による関連マージャーの問題を修正します。 (プルリクエスト)

  • PostgreSQL 外部テーブルのサポートを追加します。 (プルリクエスト)

  • Active Record オブジェクトが複製される際にトランザクションの状態をクリアします。 (プルリクエスト)

  • composed_of カラムを使用して where メソッドに Array オブジェクトを引数として渡す際の展開の問題を修正します。 (プルリクエスト)

  • reflection.klasspolymorphic? でない場合に例外を発生させ、誤用を防止します。 (コミット)

  • MySQL と PostgreSQL の #columns_for_distinct を修正し、ActiveRecord::FinderMethods#limited_ids_for が正しい主キー値を使用するようにします。 ORDER BY の列に他のテーブルの主キーが含まれていても、正しい主キー値を使用します。 (コミット)

  • dependent: :destroy の問題を修正し、子が削除されない場合に親クラスが削除される問題を修正します。 (コミット)

  • アイドル状態のデータベース接続(以前は孤立した接続のみ)は、接続プールリーパーによって定期的に削除されるようになりました。 (コミット)

9 Active Model

詳細な変更については、Changelog を参照してください。

9.1 注目すべき変更点

  • ActiveModel::Errors のメソッド #keys#values を修正します。 #keys を空のメッセージを持たないキーのみを返すように変更します。 #values を空でない値のみを返すように変更します。 (プルリクエスト)

  • ActiveModel::Errors にメソッド #merge! を追加します。 (プルリクエスト)

  • 長さバリデータのオプションに Proc またはシンボルを渡すことを許可します。 (プルリクエスト)

  • _confirmation の値が false の場合に ConfirmationValidator のバリデーションを実行します。 (プルリクエスト)

  • プロックのデフォルト値を持つ属性 API を使用するモデルをマーシャリングできるようにします。 (コミット)

  • シリアライズ時にオプションを持つ複数の :includes をすべて失わないようにします。 (コミット)

10 Active Support

詳細な変更については、Changelog を参照してください。

10.1 削除されたもの

  • コールバックのための非推奨の :if:unless の文字列フィルタを削除します。 (コミット)

  • 非推奨の halt_callback_chains_on_return_false オプションを削除します。 (コミット)

10.2 廃止

10.3 注目すべき変更点

  • HashWithIndifferentAccessfetch_values を追加します。 (プルリクエスト)

  • Time#change:offset のサポートを追加します。 (コミット)

  • ActiveSupport::TimeWithZone#change:offset:zone のサポートを追加します。 (コミット)

  • 廃止通知にジェム名と廃止の時期を渡すようにします。 (プルリクエスト)

  • バージョン付きのキャッシュエントリをサポートします。これにより、キャッシュストアはキャッシュキーを再利用し、頻繁な変更がある場合に大幅なストレージの節約が可能になります。Active Record の #cache_key#cache_version の分離と、Action Pack のフラグメントキャッシュでの使用と一緒に機能します。 (プルリクエスト)

  • スレッドごとに属性を保持するための ActiveSupport::CurrentAttributes を追加します。主な使用例は、すべてのリクエストごとの属性をシステム全体で簡単に利用できるようにすることです。 (プルリクエスト)

  • 指定されたロケールの場合に #singularize#pluralize が不可算名詞を考慮するようになりました。 (コミット)

  • class_attribute にデフォルトオプションを追加します。 (プルリクエスト)

  • Date#prev_occurringDate#next_occurring を追加し、指定された前後の曜日を返します。 (プルリクエスト)

  • モジュールとクラスの属性アクセサにデフォルトオプションを追加します。 (プルリクエスト)

  • キャッシュ: write_multi を追加します。 (プルリクエスト)

  • デフォルトで ActiveSupport::MessageEncryptor が AES 256 GCM 暗号化を使用するようにします。 (プルリクエスト)

  • テストで時間を Time.now に固定するための freeze_time ヘルパーを追加します。 (プルリクエスト)

  • Hash#reverse_merge! の順序を HashWithIndifferentAccess と一貫させます。 (プルリクエスト)

  • ActiveSupport::MessageVerifierActiveSupport::MessageEncryptor に目的と有効期限のサポートを追加します。 (プルリクエスト)

  • String#camelize を更新し、間違ったオプションが渡された場合にフィードバックを提供するようにします。 (プルリクエスト)

  • Module#delegate_missing_to は、ターゲットが nil の場合に DelegationError を発生させるようになりました。これは Module#delegate と同様です。 (プルリクエスト)

  • ActiveSupport::EncryptedFileActiveSupport::EncryptedConfiguration を追加します。 (プルリクエスト)

  • 本番アプリの秘密情報を保存するための config/credentials.yml.enc を追加します。 (プルリクエスト)

  • MessageEncryptorMessageVerifier にキーのローテーションサポートを追加します。 (プルリクエスト)

  • HashWithIndifferentAccess#transform_keys から HashWithIndifferentAccess のインスタンスを返します。 (プルリクエスト)

  • Hash#slice は、定義されている場合は Ruby 2.5+ の組み込み定義にフォールバックします。 (コミット)

  • IO#to_json は、配列に変換しようとせずに to_s の表現を返すようになりました。これにより、IO#to_json を読み取り不可なオブジェクトで呼び出した場合に IOError が発生するバグが修正されます。 (プルリクエスト)

  • Time#prev_dayTime#next_day のメソッドシグネチャを Date#prev_dayDate#next_day に合わせるために同じメソッドシグネチャを追加します。Time#prev_dayTime#next_day に引数を渡すことができるようになります。 (コミット)

  • Time#prev_monthTime#next_month のメソッドシグネチャを Date#prev_monthDate#next_month に合わせるために同じメソッドシグネチャを追加します。Time#prev_monthTime#next_month に引数を渡すことができるようになります。 (コミット)

  • Time#prev_yearTime#next_year のメソッドシグネチャを Date#prev_yearDate#next_year に合わせるために同じメソッドシグネチャを追加します。Time#prev_yearTime#next_year に引数を渡すことができるようになります。 (コミット)

  • humanizeでの略語サポートを修正しました。 (Commit)

  • TWZ範囲でのRange#include?を許可しました。 (Pull Request)

  • キャッシュ:1kBを超える値に対してデフォルトで圧縮を有効にしました。 (Pull Request)

  • Redisキャッシュストア。 (Pull Request, Pull Request)

  • TZInfo::AmbiguousTimeエラーを処理するようにしました。 (Pull Request)

  • MemCacheStore:期限切れのカウンターをサポートします。 (Commit)

  • ActiveSupport::TimeZone.allActiveSupport::TimeZone::MAPPINGにあるタイムゾーンのみを返すようにしました。 (Pull Request)

  • ActiveSupport::SecurityUtils.secure_compareのデフォルトの動作を変更し、可変長の文字列でも長さ情報を漏洩しないようにしました。 以前のActiveSupport::SecurityUtils.secure_comparefixed_length_secure_compareに名前を変更し、渡された文字列の長さの不一致の場合にはArgumentErrorを発生させるようにしました。 (Pull Request)

  • 非機密なダイジェスト(例:ETagヘッダー)を生成するためにSHA-1を使用します。 (Pull Request, Pull Request)

  • assert_changesは、from:to:の引数の組み合わせに関係なく、常に式が変化することをアサートします。 (Pull Request)

  • ActiveSupport::Cache::Storeread_multiに欠けているインストルメンテーションを追加します。 (Pull Request)

  • assert_differenceの最初の引数としてハッシュをサポートします。 これにより、同じアサーション内で複数の数値の差異を指定することができます。 (Pull Request)

  • キャッシュ:MemCacheとRedisのread_multiおよびfetch_multiの高速化。 バックエンドを参照する前に、ローカルのインメモリキャッシュから読み取ります。 (Commit)

11 Active Job

詳細な変更については、Changelogを参照してください。

11.1 注目すべき変更点

  • ActiveJob::Base.discard_onにブロックを渡すことで、破棄されるジョブのカスタム処理を許可します。 (Pull Request)

12 Ruby on Rails Guides

詳細な変更については、Changelogを参照してください。

12.1 注目すべき変更点

13 Credits

Railsへの多くの時間を費やした多くの人々に感謝します。 Railsへの貢献者の完全なリストを参照してください。 彼ら全員に賞賛を送ります。

フィードバック

このガイドの品質向上にご協力ください。

タイポや事実の誤りを見つけた場合は、ぜひ貢献してください。 開始するには、ドキュメントへの貢献セクションを読んでください。

不完全なコンテンツや最新でない情報も見つかるかもしれません。 メインのドキュメントに不足しているドキュメントを追加してください。 修正済みかどうかは、まずEdge Guidesを確認してください。 スタイルと規約については、Ruby on Rails Guides Guidelinesを確認してください。

修正すべき点を見つけたが、自分で修正できない場合は、 問題を報告してください

そして最後に、Ruby on Railsのドキュメントに関するあらゆる議論は、公式のRuby on Railsフォーラムで大歓迎です。