2015/07/16分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Make AC::Parameters not inherited from Hash
ActionPackの修正です。
ActionController::Parameters
クラスがHashWithIndifferentAccess
クラスを継承していたのを、継承しないよう修正しています。
元々HashWithIndifferentAccess
を継承していたのを、Parameters
オブジェクトでenumerable methodsを使用出来るようにする為だったのですが、
HashWithIndifferentAccess
が提供しているenumerable methodsを使用してしまうと、permitted?
の情報が失われてしまったり、
サニタイズ処理が行われていない素のHash
オブジェクトが取得出来たりと、セキュリティに問題があるのでは、という事で修正されたようです。
必要そうなメソッドはParameters
クラス内に独自に定義されているので、普通に使用する分には、問題無さそうです。
Revert "Revert "Reduce allocations when running AR callbacks.""
callback処理のオブジェクト生成数削減の為の改善を行った、Reduce allocations when running AR callbacks. · rails/rails@796cab4 のrevertをrevertしています。再度コミットされた状態ですね。
性能改善していないのでは、という理由で一度revertしたのですが、再度性能測定した結果改善が見られたので、再度コミットされたようです。
Update documentation on AC::Parameters
actionpack/lib/action_controller/metal/strong_parameters.rb
のdocの修正です。
先のコミットで追加されたActionController::Parameters
クラスの各メソッドにdocを追加しています。
Deprecate force association reload by passing true
activerecord/lib/active_record/associations/collection_association.rb
、
activerecord/lib/active_record/associations/singular_association.rb
の修正です。
association methodにtrue
を渡すとreload処理が行われる、という挙動がdeprecateになりました。 代わりに、reload
メソッドの方を使用するようにとの事です。
# NG @user.posts(true) # OK @user.posts.reload
reload
メソッドあるし、処理として解りづらいから削除で良いんじゃない、という事でdeprecateになったようです。詳細はGoogleのフォーラム参照
association methodにtrue
を渡すとreloadが行われる、という挙動自体を初めて知りました。
Standardize ActionController::Parameters#to_unsafe_h
return value
actionpack/lib/action_controller/metal/strong_parameters.rb
の修正です。
ActionController::Parameters#to_unsafe_h
メソッドの戻り値をHashWithIndifferentAccess
クラスからHash
に修正しています。
ActionController::Parameters#to_h
がHash
を返す為、戻り値のクラスに一貫性を持たせるようto_unsafe_h
クラスもHash
を返すようにしたとの事です。