2016/04/16分のコミットです。
CHANGELOGへの追加はありませんでした。
Filter scalar values when params permit hashes or arrays
actionpack/lib/action_controller/metal/strong_parameters.rb
の修正です。
ActionController::Parameters#permit
メソッドで、引数にHashが指定された場合に、scalar valueをfilterするよう修正しています。
誤って正常なパラメータであると判定されてしまうケースがあり、それを防ぐ為に対応したようです。
# before params = ActionController::Parameters.new(foo: "bar") params.permit(foo: [:bar]).has_key?(:foo) # => true # after params = ActionController::Parameters.new(foo: "bar") params.permit(foo: [:bar]).has_key?(:foo) # => false
Merge pull request #24517 from estolfo/transform-keys-return-type-master
activesupport/lib/active_support/core_ext/hash/keys.rb
の修正です。
Hash#transform_keys
メソッドが、必ずHashクラスのインスタンスを返すよう修正しています。
Rails 4.1までは必ずHashクラスのインスタンスを返すようになっていたのですが、Rails 4.2からself.class
のインスタンスを返すようになってしまっていました。他のHashクラスのメソッドと挙動をあわせる為、再度Hashクラスのインスタンスを返すよう戻してます。
PRより。
# Rails 4.1 doc = BSON::Document.new("a" => 1) # => {"a"=>1} doc.symbolize_keys # => {:a=>1} doc.symbolize_keys.class # => Hash
# Rails 4.2 doc = BSON::Document.new("a" => 1) # => {"a"=>1} doc.symbolize_keys # => {"a"=>1} doc.symbolize_keys.class # => BSON::Document
Add a note about how to execute 'rails app:update' on 4.2 and earlier [ci skip]
rails guideのA Guide for Upgrading Ruby on Rails
の修正です。
The Task
の項のapp:update
taskについて説明している箇所に、Rails 4.2より前では、task名はrails:update
だった旨説明を追加しています。