なるようになるブログ

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

rails commit log流し読み(2023/06/06)

2023/06/06分のコミットです。

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

railties/CHANGELOG.md

activerecord/CHANGELOG.md


Merge pull request #48385 from adrianna-chang-shopify/ac-autosave-belongs-to-destroy

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

autosaveが有効になっている、かつ、destructionが設定されている場合に、composite primary keyを使用しているassociationの削除処理が正しく動作するよう修正しています。


Fix test to keep behavior the same after #48397

actionview/test/actionpack/controller/render_test.rbの修正です。

MIME-typeにparameterが指定されたtypeを指定出来るよう修正した、improve quoted parameters in mime typesの対応によりエラーになっていたテストがあったのを修正しています。


Fix flaky build

activerecord/test/cases/autosave_association_test.rbの修正です。

テストで作成したデータをテスト終了時に削除するよう修正しています。


Remove unnecessary disabling of use_transactional_tests

activerecord/test/cases/autosave_association_test.rbの修正です。

現在は不要なuse_transactional_testsを無効にする処理を削除しています。


Add engine draw_paths to app

railties/lib/rails/engine.rbの修正です。

engineで設定されているdraw pathをapplicationのroute setに追加するよう修正しています。applicationがengineで定義されているdraw pathを使用出来るようにする為。


Merge pull request #48295 from luanzeba/connection_attr_reader

Active Recordの修正です。

DB関連のexceptionで、exceptionでconnection_poolの値を保持するよう修正しています。exception raise時にconnectionの情報(roleやshardなど)を取得出来るようにする為。


Revert "Small refactor on build singular association"

singular associationのbuild処理で不要なメソッド呼び出しを減らすようリファクタリングした、Small refactor on build singular associationをRevertしています。この修正の影響でhas_one relation + uniqueness validationを指定した場合の挙動が変わってしまい、元の挙動に戻す為とりあえずRevertされています。


Merge pull request #48400 from adrianna-chang-shopify/ac-scope-for-create-on-cpk

activerecord/lib/active_record/associations/singular_association.rbの修正です。

composite primary keyを使用しているbelongs_to associationに対するscope_for_createが動作するよう修正しています。


Allow composite primary key to be derived from schema

activerecord/lib/active_record/attribute_methods/primary_key.rbの修正です。

schemaでcomposite primary keyを指定した場合に、composite primary keyはサポートしていない旨警告メッセージが表示されていたのを、メッセージを表示しないよう修正しています。composite primary keyをActive Recordのpirmary keyとして扱えるようになった為。

create_table :travel_routes, primary_key: [:origin, :destination], force: true do |t|
  t.string :origin
  t.string :destination
end

class TravelRoute < ActiveRecord::Base; end

TravelRoute.primary_key #=> ["origin", "destination"]