2017/02/26分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Commit flash changes when using a redirect route.
actionpack/lib/action_dispatch/routing/redirection.rbの修正です。
routeでredirectメソッドを使用している、かつ、そのredirect処理内でflashを設定した場合に、その設定したflashがコミットされてない(flash hash経由で値が取得出来ない)バグがあったのを修正しています。
issueより。
# config/routes.rb Rails.application.routes.draw do get "/foo", to: redirect { |params, req| req.flash[:error] = "test" # uncomment this out to make it work: #req.commit_flash "/bar" } get "/bar", to: "bar#show" end
上記のように定義した場合に、controllerでflash[:error]に値が設定されてない状態になってしまっていました。
Deprecate AbstractAdapter#verify! with arguments
activerecord/lib/active_record/connection_adapters/abstract_adapter.rbの修正です。
AbstractAdapter#verify!メソッドに引数を渡すのがdeprecateになりました。引数は渡せるようになっていたものの、Rails 2系の頃から渡された引数は全く使用していなかった為、deprecateにしています。
Use ensure block for things we cleanup in tests
activerecord/test/cases/adapters/mysql2/connection_test.rb、
activerecord/test/cases/adapters/postgresql/connection_test.rbの修正です。
テストの後処理をensureブロック内で行うよう修正しています。
Suppress DISTINCT clause outside aggregate function
activerecord/lib/active_record/relation/calculations.rbの修正です。
集約関数用メソッドを実行した際、クエリーに不要なDISTINCTが含まれていたのを、削除しています。
コミットより。
# Before author.unique_categorized_posts.count # => SELECT DISTINCT COUNT(DISTINCT "posts"."id") FROM "posts" INNER JOIN "categorizations" ON "posts"."id" = "categorizations"."post_id" WHERE "categorizations"."author_id" = ? [["author_id", 2]] # After author.unique_categorized_posts.count # => SELECT COUNT(DISTINCT "posts"."id") FROM "posts" INNER JOIN "categorizations" ON "posts"."id" = "categorizations"."post_id" WHERE "categorizations"."author_id" = ? [["author_id", 2]]
activesupport/CHANGELOG.mdの修正です。
各エントリーのフォーマット、タイポの修正をまとめて行っています。
Fix change_column to drop default with null: false
Active Recordの修正です。
change_columnメソッドでdefault: nil + null: falseが同時に設定出来ない(e.g. change_column "tests", "contributor", :boolean, default: nil, null: false)バグがあったのを修正しています。
Fix typo ‘affect’ -> ‘effect’ [ci skip]
activerecord/lib/active_record/connection_adapters/abstract_adapter.rbの修正です。
AbstractAdapter#verify!メソッドに引数を渡した際のdeprecateメッセージでeffectをaffectにタイポしていたのを修正しています。
Add Duration#before and #after as aliases for #ago and #since
activesupport/lib/active_support/duration.rbの修正です。
ActiveSupport::Duration#until、#sinceメソッドのaliasとして、#after、#beforeメソッドを追加しています。
5.days.before(Date.today) # => Tue, 21 Feb 2017 2.weeks.after # => Sun, 12 Mar 2017 10:41:22 UTC +00:00
Remove duplicated private method
activerecord/lib/active_record/relation/finder_methods.rbの修正です。
ActiveRecord::ActiveRecord moduleで二回privateメソッドを2回呼び出していたので、2回目の呼び出しを削除しています。
Remove useless select_values += select_values
activerecord/lib/active_record/relation/calculations.rbの修正です。
不要なselect_values変数への代入処理を削除しています。直前の行でselect_valuesは定義済みであり不要との事。
- select_values += select_values unless having_clause.empty?
が、実際は意味のある行だった為、後ほどrevertされています。
guides/bug_report_templates/action_controller_master.rbの修正です。
ActionController用のbug report templateファイルで、リリース済みのarelを使用するよう修正しています。
Merge pull request #28176 from kamipo/push_valid_type_up_to_abstract_adapter
Active Recordの修正です。
各adapterで独自に処理が定義されていたvalid_type?メソッドについて、abstract adapterで処理を定義するよう修正しています。各adapterでやっている事が同じだった為。
actionpack/lib/action_dispatch/routing/route_set.rbの修正です。
RouteSet#add_routeメソッドから使用していない引数を削除しています。
Include selects in group query with having clause
activerecord/lib/active_record/relation/calculations.rbの修正です。
先ほど削除されたselect_valuesの代入式を戻しています。また、合わせてその代入式が必要な場合についてのテストを追加しています。having句で指定したaliasをselectに含む場合に必要だったらしいです。
+ select_values += self.select_values unless having_clause.empty?
[ci skip] Add CHANGELOG entry for #28183
activerecord/CHANGELOG.mdの修正です。
直前のhaving句で指定したaliasをselectで指定した場合について正しく動作するようにした対応について、CHANGELOGにエントリーを追加しています。