どうも、こちらWojtekです。 Railsのコードベースで何が変わったか見てみましょう。

バックグラウンドのジョブでActive Storageの変種を前処理するオプションを追加
Active Storageの変種 (variant) は必要なときにその場で処理されます。 しかしこれらがアクセス済みであれば予め処理しておきたいことがあります。

class User < ApplicationRecord
  has_one_attached :avatar do |attachable|
    attachable.variant :thumb, resize_to_limit: [100, 100], preprocessed: true
  end
end

Action Textに構成sanitizer_vendorを導入
対応している場合、既定のRails 7.1の構成でRails::HTML5::SafeListSanitizerを使用します。 Active Textのサニタイザはconfig.action_text.sanitizer_vendorを設定して構成できます。

ActiveSupport::JSON.encodeの効率を向上
.to_json/ActiveSupport::JSON.encodeの性能が約2倍になります。 プルリクエストにベンチマークが含まれています。

stylesheet_link_tagないしjavascript_include_tagが呼ばれたときにLink preloadヘッダのオプトイン・オプトアウトができるようにします

# 設定で有効でもヘッダを除外
javascript_include_tag("http://example.com/all.js", preload_links_header: false)

クエリログが有効の場合にデータベースのプリペアドステートメントを無効化
プリペアドステートメントとクエリログの両機能は釣り合いが取れません。 クエリログは全てのクエリを一意なものにし、Active Recordはそれぞれについて新しいプリペアドステートメントを作成するためです。 これによりシステムリソースの枯渇を招く可能性がありました。

逆向きに単一の構築を経由するhas_oneを修正
逆向きに単一の関係を経由するhas_oneを持つ関係からレコードが構築できるようになりました。 関係を経由するbelongs_toにおいて外部キーを主キーのモデルに紐付ける必要はありません。

入れ子のfield_idfield_nameのインデックスを二重にエンコードしないようにする
これは、深く入れ子になった関係に対しフォーム構築子に余剰のインデックス引数を追加していた不具合を修正しています。

変更の全一覧についてはこちらをご覧下さい
この1週間に24名の方々からRailsのコードベースに貢献していただきました!

また次回!

購読するとこうした更新をメールで受け取れます。