なるようになるブログ

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

rails commit log流し読み(2023/03/31)

2023/03/31分のコミットです。

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

activerecord/CHANGELOG.md

actioncable/CHANGELOG.md


Respect explicitly configured query_constraints

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

query_constraintsの対象のカラムの保持処理から不要な変数を削除しています。


Move Template class docs to the correct namespace [ci-skip]

Action Viewのdocの修正です。

template関連のclassのdocが実際のclassの定義と違う箇所に記載されていたのを修正しています。


Add test coverage for AbstractMysqlAdapter

Active Recordのテストの修正です。

MySQL adapter用のテストがmysql2 gem前提のテストになっていたのを、他のMySQL adapterでも動作するようテストの構成を変更しています。trilogyなどの他のMySQL adapterを導入しやすくする為。


Add debug gem back to the Gemfile template

railties/lib/rails/generators/rails/app/templates/Gemfile.ttの修正です。

デフォルトのGemfileにdebug gemを戻しています。削除の理由となった依存関係の問題が最新バージョンのRubyで解決された為。


Infer foerign_key when inverse_of is present (#47797)

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

has_one / has_many associationにinverse_ofオプションが指定されている場合、その対象から自動でforeign_keyで設定を行うよう修正しています。

これにより、

has_many :citations, foreign_key: "book1_id", inverse_of: :book

としていたのを、下記のようにforeign_keyオプション無しで定義出来るようになっています。

has_many :citations, inverse_of: :book

Fix autoincrement on primary key

activerecord/lib/active_record/connection_adapters/mysql/schema_definitions.rbの修正です。

MySQL adapterでmigrationのprimary keyのcolumnにauto_incrementオプションを指定した場合に、そのオプションが無視されてしまうバグがあったのを修正しています。


Merge pull request #47786 from jhawthorn/view_caching_attempt4

Action Viewの修正です。

同じpath配下の全てのFileSystemResolverについて重複排除と値のcacheを保持するようにしていたのを、ActionView::ViewPathsのdescendantにだけ重複排除とcacheを保持するよう修正しています。元のアプローチだとresolver毎に異なるtemplateのcacheを保持してしまい、そのcacheの表示時にエラーになっていまう事があった為、のようです。


Merge pull request #47825 from toy/patch-1

rails guideのRuby on Rails 4.0 Release Notesの修正です。

BufferedLogger -> ActiveSupport::BufferedLoggerに修正しています。


Merge pull request #47793 from ghiculescu/assert_broadcasts-return-messages

actioncable/lib/action_cable/test_helper.rbの修正です。

assert_broadcastsがbrodcastしたメッセージを返すよう修正しています。

message = assert_broadcasts("test", 1) do
  ActionCable.server.broadcast "test", "message"
end
assert_equal "message", message