2015/08/14分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
descriptive error message when fixtures contian a missing column.
activerecord/lib/active_record/connection_adapters/abstract/database_statements.rbの修正です。
fixturesに、テーブルに存在しないカラム名が指定されていた場合に明確にその旨わかるようエラーメッセージを表示するよう修正しています。
エラーメッセージ例。
# before NoMethodError: undefined method `sql_type' for nil:NilClass # after ActiveRecord::Fixture::FixtureError: table "parrots" has no column named "arrr"
Merge pull request #19770 from vngrs/prevent_duplicated_where_clauses
activerecord/lib/active_record/scoping/default.rbの修正です。
abstract classでdefault scopeを使用していた場合に、default scopeに指定したwhereが2回設定されてしまうバグがあったのを修正しています。
例。
class User < ActiveRecord::Base self.abstract_class = true default_scope { where('deleted_at IS NULL') } end class Admin < User end Admin.all.load # => SELECT "admins".* FROM "admins" WHERE (deleted_at IS NULL) AND (deleted_at IS NULL)
4.2.0系から発生していたリグレッションのようです。
raise if anchor is passed to scope
actionpack/lib/action_dispatch/routing/mapper.rbの修正です。
scopeメソッドにanchorオプションが渡された場合に、ArgumentErrorをraiseするよう修正しています。
anchorオプションが指定された場合、matchメソッドの方でオプションの処理を行うため、scopeメソッドにわたってくる事は通常無いため、との事です。
Merge pull request #19683 from tristang/require-option-for-counter-cache
activerecord/lib/active_record/associations/has_many_association.rbの修正です。
has_many associationに、counter_cacheオプションを指定出来るよう修正しています。
belongs_to associationにcounter_cacheオプションを指定してないにも関わらず、条件に一致するカラム名があった場合に自動でcounter cacheの処理が行われてしまう、
というバグがあった為、has_many associationについても、明確にオプションが設定されてないとcounter cacheの処理が行われないよう対応しています。
actionpack/lib/action_dispatch/routing/mapper.rbの修正です。
Mapperクラスのコンストラクタで行っていたanchorオプションの取得処理を、もっと早い段階(matchメソッド)で行うよう修正しています。
options hashの値を変化させる回数を減らす為との事。
actionpack/lib/action_dispatch/routing/mapper.rbの修正です。
Mappingクラスからanchor変数を削除しています。
先のコミットでoptions hashからのanchorの取得処理はMapperクラスを呼ぶ前に行われるようになった為、そもそもMappingクラスでanchorの情報を保持しておく必要性がなくった為、削除したとの事です。
actionpack/lib/action_dispatch/routing/mapper.rbの修正です。
Mappingクラスからas変数を削除しています。
options hashからのasのオプションの値の取得処理はMapperクラスを呼ぶ前に行われるようになっており、Mappingクラスで情報を保持しておく必要性はなくなっている為、削除したとの事です。
pull up options_constrants extraction
actionpack/lib/action_dispatch/routing/mapper.rbの修正です。
Mapperクラスのコンストラクタで行っていたconstraintsオプションの取得処理を、もっと早い段階(matchメソッド)で行うよう修正しています。
remove default arguments that aren't used
actionpack/lib/action_dispatch/routing/route_set.rbの修正です。
add_routeメソッドの引数から、デフォルト引数を削除しています。
引数は必ず渡され、デフォルト引数が使われる事は無いため、との事です。
we already have access to the AST, so just use it
actionpack/lib/action_dispatch/routing/route_set.rbの修正です。
build_pathメソッドでJourney::GTG::Builderのインスタンスを生成する際、既に作成済みのASTを使用するよう修正しています。
pass anchor directly to Pattern
actionpack/lib/action_dispatch/journey/path/pattern.rbの修正です。
Patternクラスのコンストラクタにanchorを設定するようの引数を追加しています。
元々は、第一引数のStrexpクラスから取得していたのですが、呼び出す時点でanchorの値はわかっており、objectを経由する必要は無いのでは、という事で修正したようです。
actionpack/lib/action_dispatch/journey/path/pattern.rbの修正です。
Journey::Router::Strexpクラスを削除しています。Strexpクラスで行っていた処理はPath::Patternクラスで行うよう修正されています。
build_path doesn't need the path variable anymore
actionpack/lib/action_dispatch/routing/route_set.rbの修正です。
build_pathメソッドから、不要なpath変数を削除しています。
Merge pull request #21225 from brooksreese/sql_is_made_up_of_statements
rails guideのActive Record Basicsの修正です。
statementをsentenceにタイポしていたのを修正しています。
Fix middleware deprecation message. Related to #21172.
activerecord/lib/active_record/railtie.rbの修正です。
middlewareの指定Stringで指定していたのを、Classを指定するよう修正しています。
Using strings or symbols for middleware class names is deprecated. でStringでの指定はdeprecateになったので、その為の対応です。
Remove version argument in install.rb
install.rbの修正です。
引数で指定するようになっていたバージョン番号を、RAILS_VERSIONファイルから取得するように修正しています。
install.rb、修正はコミットされたものの、そもそも使用していないという事で、後ほどファイル自体削除されています。