2021/08/05分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
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])
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.rb
、
activerecord/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に指定された値を使用するよう修正しています。
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内のタイポを修正しています。