なるようになるブログ

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

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

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

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

activerecord/CHANGELOG.md


Define path with dir in activestorage/

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

相対パスでファイルを取得するのに__FILE__を使用していたのを__dir__を使用するよう修正しています。不要な".."を削除出来るようにする為。


Use require_relative instead of require with full path in activestorage/

activestorage/test/test_helper.rbの修正です。

envファイルをロードするのにrequire + File.expand_pathを使用していたのを、require_relativeを使用するよう修正しています。


Merge pull request #30885 from yhirano55/add_action_cable_notifications_to_instrument_guide

rails guideのActive Support Instrumentationの修正です。

`Action Cableのセクションを追加し、Action Cableのhooksについての説明を追加しています


Merge pull request #30883 from PHedkvist/add_daemon_command_test

railties/test/commands/server_test.rbの修正です。

rails serverコマンドにdaemonオプションを指定した場合のテストを追加しています。


Merge pull request #30877 from y-yagi/remove_jquery-rails

Gemfileの修正です。

使用していないjquery-railsを削除しています。


Fix test name for daemon option test

railties/test/commands/server_test.rbの修正です。

rails serverコマンドにdaemonオプションを指定した場合のテストのテスト名が、テスト内容と異なる名前になっていたのを修正しています。


Add unpermitted_parameters.action_controller hook to instrument guide [ci skip]

rails guideのActive Support Instrumentationの修正です。

unpermitted_parameters.action_controller hookについての説明を追加しています。


Show the failed queries in test_has_one_does_not_use_order_by

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

has_one associationでorder byが使用されない事を確認するテストで、テストが失敗した際に発行されたSQLを表示するよう修正しています。

このテストがCIで時折エラーになってしまい、その調査の為に表示するようにしたようです。


Fix COUNT(DISTINCT ...) for GROUP BY with ORDER BY and LIMIT

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

DISTINCT + COUNT + ORDER BY + LIMIT + GROUP BY を実行した場合に、不正なSQLが生成されてしまいエラーになってしまうバグがあったのを修正しています。

# before
User.group(:id).distinct.order(updated_at: :desc).limit(10).count
# => SELECT  COUNT(DISTINCT *) AS count_all, "users"."id" AS users_id FROM "users" GROUP BY "users"."id" ORDER BY "users"."updated_at" DESC LIMIT ?  [["LIMIT", 10]]
# => ActiveRecord::StatementInvalid: SQLite3::SQLException: near "*": syntax error: SELECT  COUNT(DISTINCT *) AS count_all, "users"."id" AS users_id FROM "users" GROUP BY "users"."id" ORDER BY "users"."updated_at" DESC LIMIT ?

# after
User.group(:id).distinct.order(updated_at: :desc).limit(10).count
# => SELECT  COUNT(DISTINCT "users"."id") AS count_id, "users"."id" AS users_id FROM "users" GROUP BY "users"."id" ORDER BY "users"."updated_at" DESC LIMIT ?  [["LIMIT", 10]]