なるようになるブログ

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

rails commit log流し読み(2017/09/14)

2017/09/14分のコミットです。

CHANGELOGへの追加はありませんでした。


Update Getting Started with Rails [ci skip]

rails guideのGetting Started with Railsの修正です。

Creating the Blog Applicationの項にあるRailsがデフォルトで生成するファイルの一覧に、package.json.ruby-versionを追加しています。


[ci skip] Prefer credentials to secrets in docs.

各docの修正です。

secretsについて言及している箇所を、まとめてcredentialsについて言及するよう修正しています。


Make in_batches queries to preparable

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

in_batchesメソッドが生成queryでプリペアドステートメントを使用するよう修正しています。

コミットより。

Before:

SELECT  "posts".* FROM "posts" ORDER BY "posts"."id" ASC LIMIT ?  [["LIMIT", 2]]
SELECT  "posts".* FROM "posts" WHERE "posts"."id" > 2 ORDER BY "posts"."id" ASC LIMIT ?  [["LIMIT", 2]]
SELECT  "posts".* FROM "posts" WHERE "posts"."id" > 4 ORDER BY "posts"."id" ASC LIMIT ?  [["LIMIT", 2]]
SELECT  "posts".* FROM "posts" WHERE "posts"."id" > 6 ORDER BY "posts"."id" ASC LIMIT ?  [["LIMIT", 2]]
SELECT  "posts".* FROM "posts" WHERE "posts"."id" > 8 ORDER BY "posts"."id" ASC LIMIT ?  [["LIMIT", 2]]
SELECT  "posts".* FROM "posts" WHERE "posts"."id" > 10 ORDER BY "posts"."id" ASC LIMIT ?  [["LIMIT", 2]]

After:

SELECT  "posts".* FROM "posts" ORDER BY "posts"."id" ASC LIMIT ?  [["LIMIT", 2]]
SELECT  "posts".* FROM "posts" WHERE "posts"."id" > ? ORDER BY "posts"."id" ASC LIMIT ?  [["id", 2], ["LIMIT", 2]]
SELECT  "posts".* FROM "posts" WHERE "posts"."id" > ? ORDER BY "posts"."id" ASC LIMIT ?  [["id", 4], ["LIMIT", 2]]
SELECT  "posts".* FROM "posts" WHERE "posts"."id" > ? ORDER BY "posts"."id" ASC LIMIT ?  [["id", 6], ["LIMIT", 2]]
SELECT  "posts".* FROM "posts" WHERE "posts"."id" > ? ORDER BY "posts"."id" ASC LIMIT ?  [["id", 8], ["LIMIT", 2]]
SELECT  "posts".* FROM "posts" WHERE "posts"."id" > ? ORDER BY "posts"."id" ASC LIMIT ?  [["id", 10], ["LIMIT", 2]]

quoted_table_name doesn’t respect table alias

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

ActiveRecord::Batches#batch_orderメソッドでprimary keyを取得するのにarel_attributeを使用するよう修正しています。

      def batch_order
-        "#{quoted_table_name}.#{quoted_primary_key} ASC"
+        arel_attribute(primary_key).asc
       end

quoted_table_nameメソッドだとtable aliasが正しく扱えない為。


Address random test_or_with_bind_params failures

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

test_or_with_bind_paramsでassertionを実行する際に、idでsortした値を使用するよう修正しています。sortした値を使用しないと取得出来る値が不定になり、seedによってはテストが失敗してしまう為。


Update Active Job Basics [ci skip]

rails guideのActive Job Basicsの修正です。

Starting the Backendの一覧にSneakersを追加しています。


Don’t use quoted_table_name in limited_ids_for

activerecord/lib/active_record/connection_adapters/abstract_adapter.rbactiverecord/lib/active_record/relation/finder_methods.rbの修正です。

ActiveRecord::FinderMethods#quoted_table_nameメソッドでprimary keyを取得するのにquoted_table_nameメソッドを使用していたのを、arel_attributeを使用するよう修正しています。 quoted_table_nameメソッドだとtable aliasが正しく扱えない為。


Don’t use collection.table_name in collection_cache_key

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

ActiveRecord::CollectionCacheKey#collection_cache_keyメソッドでtimestampのcolumnを取得するのにcollection.table_nameを使用していたのを、arel_attributeを使用するよう修正しています。 quoted_table_nameメソッドだとtable aliasが正しく扱えない為。


Remove unused explicit delegation to klass in relation

activerecord/lib/active_record/relation.rbactiverecord/lib/active_record/relation/delegation.rbの修正です。

klassdelegateするメソッドの一覧に実際は使用していないメソッドが含まれていたのを削除しています。


Avoid making HTTP requests to generate signed URLs for GCS objects

activestorage/lib/active_storage/service/gcs_service.rbの修正です。

File objectを生成する際に、skip_lookupオプションを指定するよう修正しています。object生成時点でHTTP requestsが発生してしまうのを避ける為、との事です。

参考:Add skip_lookup to Storage