なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2024/01/30)

2024/01/30分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

railties/CHANGELOG.md

activerecord/CHANGELOG.md


Support comment symbol '#' on .railsrc file

railties/lib/rails/generators/rails/app/app_generator.rbの修正です。

.railsrcファイルで、#からはじまる行はコメント行として扱うよう修正しています。


Merge pull request #50887 from marvin-bitterlich/marvin.bitterlich/result-set

Active Recordの修正です。

Active Support Instrumentationのsql.active_record hookのpayloadに、queryが返す行数(:row_count)を含むよう修正しています。大量のデータを取得してしまったqueryを検出出来るようにするため。


Merge pull request #50893 from rails/rm-fix-schema-cache-multiple-configs

Active Recordの修正です。

multiple databasesの設定がある、かつ、schema cacheが存在している場合に、Railsアプリケーションのboot時に同じcacheを全てのDBでloadしてしまうバグがあったのを修正しています。

この対応に合わせて、ActiveRecord::Tasks::DatabaseTasks.cache_dump_filenameにdatabase nameをStringで渡すのをdeprecatedにしています。今後は、ActiveRecord::DatabaseConfigurations::DatabaseConfigのオブジェクトを渡す必要があります。


Allow encryption without compression

activerecord/lib/active_record/encryption/encryptor.rbの修正です。

ActiveRecord::Encryption::Encryptorを使用する際に圧縮処理を無効化出来るよう修正しています。

class User
  encrypts :name, encryptor: ActiveRecord::Encryption::Encryptor.new(compress: false)
end

既に圧縮されているデータを扱う際や、暗号化された値のエントロピーに関する情報の漏洩を回避するため、とのことです。

参考: Why and how GitHub encrypts sensitive database columns using ActiveRecord::Encryption - The GitHub Blog


Add ".[key]" to the abstract namespaces [ci skip] (#50860)

rails guideのRails Internationalization (I18n) APIの修正です。

Error Message Scopesセクションにあるerror messageに使用されるkeyについて説明している箇所のexampleに値が不足していたのを修正しています。


Doc: update partial rendering with dots in name

rails guideのCaching with Rails: An Overviewの修正です。

現在は使用出来ないtemplate名に.を含んだ名前を指定した例があったのを修正しています。


Require 'uri' explicitly to address NameError: uninitialized constant ToQueryTest::URI

activesupport/test/core_ext/object/to_query_test.rbの修正です。

不足していたuriのrequireを追加しています。


Merge pull request #50918 from Shopify/improve-kernel-inspect

activerecord/lib/active_record/normalization.rbactiverecord/lib/active_record/type/serialized.rbの修正です。

inspectメソッドを定義するのにUnboundMethod + bind_callを使用していたのを、define_methodメソッドで定義するよう修正しています。不要なオブジェクトの生成等を避ける為。


BacktraceCleaner silence core internal methods by default

activesupport/lib/active_support/backtrace_cleaner.rbの修正です。

BacktraceCleaner<internal:で始まるtraceも削除するよ修正しています。Cで実装されていた処理がsemi-ruby codeに移動されており、それらのコードの場合、internalではじまる行がtraceとして表示される事がある為、との事です。


Fix broken anchor in Rails Guides Guidelines

rails guideの修正です。

グラマーの修正、及び、リンク内のアンカーの指定が誤っている箇所があったのを修正しています。