2017/10/27分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
activemodel/CHANGELOG.md
Merge pull request #30674 from prognostikos/allow_procs_for_length_validator
activemodel/lib/active_model/validations/length.rbの修正です。
length validatorのオプションに、Proc、及びSymbolを渡せるよう修正しています。
class Topic include ActiveModel::Validations attr_accessor :title, :foo validates :title, length: { maximum: ->(topic) { topic.max_length_for_title } } def max_length_for_title if foo 5 else 10 end end
これにより、上記のように、メソッドの結果をlenghtに指定出来るようになります。
activerecord/lib/active_record/associations/alias_tracker.rbの修正です。
Associations::AliasTracker.initial_count_forメソッドでjoinがHashだった場合、かつ、値が取得出来なかった場合の対応を追加しています。
elsif join.is_a?(Hash) - join[name] + join.fetch(name, 0) else
元のコードだとnilが返ってしまうのですが、nilだと以降のコードでエラー(NoMethodError: undefined method +' for nil:NilClass)が発生する可能性がある為、明示的に初期値を指定するよにしています。
activerecord/lib/active_record/reflection.rbの修正です。
PolymorphicReflectionクラスでscope_forメソッドをreflectionにdelegateするよう修正しています。delegateしておかないtscope_forメソッドの呼び出しでエラーになってしまう為。
activerecord/test/cases/associations/has_many_through_associations_test.rbの修正です。
throughをtroughにタイポしていたのを修正しています。
activerecord/test/cases/associations/has_many_through_associations_test.rbの修正です。
throughをtroughにタイポしている箇所が他にもあったのを修正しています。
Remove CHANGELOG entry for PR #28681 [ci skip]
activerecord/CHANGELOG.mdの修正です。
Rails 5.1系にバックポートされている対応のエントリーを削除しています。