なるようになるブログ

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

rails commit log流し読み(2016/07/26)

2016/07/26分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activerecord/CHANGELOG.md


Correct the behavior of virtual attributes on models loaded from the db

Active Recordの修正です。

virtual attributesを使用しているmodelでDBから値を取得した際に、ActiveModel::MissingAttributeErrorがraiseされてしまうバグがあったのを修正しています。

virtual attributesはDBには存在しないので、DBから値を取得した際は参照出来ないのですが、DBから値を取得した後の初期化処理で参照しようとしてしまいエラーになっていました。

attribute API内部でdefaultの値を受け渡すようにし、virtual attributeはそちらを使用してい初期化処理を行えるようにし対応を行っています。


Whoops, forgot the changelog entry for the previous commit

先の対応でCHANGELOGにエントリーを追加するのが漏れていたので、CHANGELOGにエントリーを追加しています。


Also yield in parameters for a nil content_mime_type

actionpack/lib/action_dispatch/http/parameters.rbの修正です。

ActionDispatch::Http::Parameters#parse_formatted_parametersメソッドで、content mime typeがnilの場合、early returnするよう修正しています。

Rails 5でmime typeの扱い方が変わったのですが、その際、mime typeがnilだった場合の処理が抜けてしまい、mime typeがnilだった場合に、NoMethodError(undefined method `symbol' for nil:NilClass)で処理が落ちてしまう、というバグがありました。その為、mime typeがnilかどうかのチェックを追加し、処理が正しく行われるようにしています。

因みに、Content-Typeに空の値を指定するのは、HTTP的にはOKらしいです(HTTP/1.1: Entity)。知らなかった。


Extract type_casted_binds method

Active Recordの修正です。

各adapterそれぞれで行っていたbindsのtype cast処理を、メソッド(type_casted_binds)に切り出しています。


Make force_signal37_to_load_all_clients_of_firm to private

activerecord/test/cases/associations/has_many_associations_test.rbの修正です。

テストでのみ使用するヘルパーメソッドの可視性をprivateに変更しています。


Merge pull request #25936 from prathamesh-sonpatki/bump-arel

Gemfile.lockの修正です。

arelのバージョンを7.0.0 -> 7.1.0に更新しています。7.1.0にはRuby 2.4のinteger統合の対応が入っており、railsのテストをRuby 2.4で通るようにする為にバージョンを上げたとの事です。


Merge pull request #25929 from kamipo/load_target_is_public_method

Active Recordの修正です。

publicメソッドであるActiveRecord::Associations::CollectionProxy#load_targetを呼び出すのにsendを使用している箇所があったのを、sendを使用せず直接メソッドを呼び出すよう修正しています。