なるようになるブログ

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

rails commit log流し読み(2021/08/05)

2021/08/05分のコミットです。

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

activerecord/CHANGELOG.md


Merge pull request #42061 from kddnewton/ar-in-order-of

Active Recordの修正です。

recordを明示的な順序で取得する為のin_order_ofメソッドを追加しています。

MySQLではFIELD functionが使われているようになっていますが、それ以外はcaseが使われます。

Post.in_order_of(:id, [3, 5, 1])

MySQL

SELECT "posts".* FROM "posts" ORDER BY FIELD("posts"."id", 1, 5, 3) DESC

MySQL以外

SELECT "posts".* FROM "posts" ORDER BY CASE "posts"."id" WHEN 3 THEN 1 WHEN 5 THEN 2 WHEN 1 THEN 3 ELSE 4 END ASC

Merge pull request #41392 from kddnewton/raise-error-belongs-to-custom-primary-key

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

fixtureに不正なprimary keyの値が指定されていた場合に、不正な値が指定されている事がわかるようなエラーメッセージを出力するよう修正しています。


Merge pull request #41841 from kddnewton/structurally-compatible

activerecord/lib/active_record/relation/query_methods.rbactiverecord/test/cases/relation/delegation_test.rbの修正です。

relationのstructureに互換性があるかどうかをチェックする為のActiveRecord::Relation#structurally_compatible?メソッドを追加しています。#or#andのように、structureに互換性が無いとエラーになるメソッドで使用出来るかどうかをチェック出来るようにする為。


Merge pull request #42458 from HParker/use-ripper-dependency-tracker

Action Viewの修正です。

Action Viewのdependency trackerにripper baseのtracker使用するよう修正しています。元々は正規表現を使用していたのですが、ripperを使用する事で正規表現だと見つけるのが難しかったdependencyを見つける事ができる、かつ、ERB以外のテンプレートでも使用出来る(筈)為。


Document autoloading and engines [skip ci]

rails guideのAutoloading and Reloading Constants (Zeitwerk Mode)Getting Started with Enginesの修正です。

Rails Enginesでのautoloadの挙動について説明したAutoloading and Enginesセクションを追加しています。


Allow testing action cable with a different redis port

actioncable/test/subscription_adapter/redis_test.rbの修正です。

Action Cableのテストで使用するportが6379固定だったのを、ENVに指定された値を使用するよう修正しています。


Default to ERB Tracker

actionview/lib/action_view/dependency_tracker.rbの修正です。

Action Viewのdependency trackerをERBTracker(元のtracker)に戻しています。互換性の為。


Address "NameError: Rails couldn't find a valid model for Club association"

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

Raise error on invalid fixture primary keyの対応により必要になったmodelのrequireを追加しています。


Fix typo in Action View changelog [ci skip]

actionview/CHANGELOG.mdの修正です。

CHANGELOG内のタイポを修正しています。