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
、修正はコミットされたものの、そもそも使用していないという事で、後ほどファイル自体削除されています。