引用元
今週のトピック
ErrorReporter#unexpectedを本番環境ではreportし開発環境ではraiseするようにする
https://railsguides.jp/error_reporting.html
この変更により、前提条件違反を報告するErrorReported#unexpected
が追加された。
例えば、以下のコードではdevelopment環境とtest環境ではエラーをraiseするが、production環境ではエラーをreportする。
def edit
if published?
Rails.error.unexpected("[BUG] Attempting to edit a published article, that shouldn't be possible")
return false
end
# ...
end
with_routing テストヘルパーを統合テストで使えるようにする
with_routingテストヘルパーのサポートが ActionDispatch::IntegrationTest に追加された。
(with_routingはさまざまなルーティングを簡単にテストするためのヘルパー)
Active Storageアップロードにおけるボタンタグ内の入れ子要素のサポート
ボタンやsubmitタイプの入力に、スパン、アイコン、その他のHTML要素などの子要素が含まれている場合に発生する可能性のある問題に対処するもの。
非推奨コードの削除
Rails 7.2で非推奨とされたコードをすべて削除するための進行中の取り組み。
MySQLでDBクエリに警告があってもActiveRecord.db_warnings_actionが呼び出されない場合の処理
SHOW WARNINGSクエリが実行されたときに警告を返さない場合、MySQLがwarning_countを0より大きく返しても、ActiveRecord.db_warnings_action procは警告を無視するのではなく、一般的な警告メッセージとともに呼び出される
登録されたActive Recordアダプタの検証を遅らせ、アダプタのエイリアスを許可する
DB アダプタの名前によるエイリアスを許可するためのもの。最終的な状態はとしては、アプリケーションレベルでmysqlをtrilogyまたはmysql2のいずれかにマップできるようにするところを目指している。