読者です 読者をやめる 読者になる 読者になる

なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2016/08/02)

2016/08/02分のコミットです。

CHANGELOGへの追加はありませんでした。


Merge pull request #25986 from kamipo/remove_unnecessary_methods_for_null_relation

activerecord/lib/active_record/null_relation.rbの修正です。

ActiveRecord::NullRelation moduleから不要なメソッドを削除しています。


Make Parameters support legacy YAML encodings.

actionpack/lib/action_controller/metal/strong_parameters.rbの修正です。

Rails 5でActionController::Parameterの親クラスが変わった事及びインスタンス変数が変わった事により、Rails 4でActionController::ParameteryamlにdumpしたデータをRails 5に読み込んだ際に、正しくActionController::Parameterとして扱われない問題があったのを修正しています。

YAML.load_tagsを指定、及びinit_withメソッドを追加しインスタンス変数の変換処理を追加し対応しています。


Remove unnecessary set_inverse_instance in finder methods

activerecord/lib/active_record/associations/collection_association.rbの修正です。

finder method(findlasttake等)でrecordに対してset_inverse_instanceメソッドを呼び出していたのを、削除しています。

methodの中ではAssociationRelationに対して処理を行っているのですが、AssociationRelationクラスの中でset_inverse_instanceを呼び出しており、ここで個別に呼ぶ必要は無い為。


Let Psych 2.0.9+ deserialize 2.0.8 serialized parameters.

actionpack/lib/action_controller/metal/strong_parameters.rbの修正です。

YAML.load_tagsのkey名を修正、及びinit_withメソッドでのパラメータチェック処理を修正しています。

-      else
+      elsif coder.map['parameters']
         # YAML's Object format. Only needed because of the format
         # backwardscompability above, otherwise equivalent to YAML's initialization.
         @parameters, @permitted = coder.map['parameters'], coder.map['permitted']
+      else
+        # YAML 2.0.8's format where hash instance variables weren't stored.
+        @parameters = coder.map.with_indifferent_access
+        @permitted  = false

Psych 2.0.8と2.0.9以降で値の持ち方が違う(2.0.8まではインスタンス変数を保持していない)為、それぞれの場合で対応出来るようにしたとの事です。


Replace implicit formats with a case statement.

actionpack/lib/action_controller/metal/strong_parameters.rbの修正です。

条件分岐にif/elseを使用していたのを、case/whenを使用するよう修正しています。


Move the YAML hook closer to init_with.

actionpack/lib/action_controller/metal/strong_parameters.rbの修正です。

YAML.load_tagsの値の指定をinit_withメソッドの近くに移動、及び処理をメソッドに移動しています。


Set always_permitted_parameters.

actionpack/test/controller/parameters/serialization_test.rbの修正です。

テストの前処理で必ずActionController::Parameters.always_permitted_parametersにtrueを指定するよう修正しています。


Fix wrong assignment.

actionpack/test/controller/parameters/serialization_test.rbの修正です。

先のコミットでActionController::Parameters.always_permitted_parametersにtrueを指定するよう修正していますが、テストの内容的にActionController::Parameters.always_permitted_parametersではなく、ActionController::Parameters.permit_all_parametersに値をしているのが但しかったので、値を指定するパラメータを修正しています。