なるようになるブログ

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

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

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

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

activerecord/CHANGELOG.md


Offer invitations to use retry_on/discard_on for common cases

activejob/lib/rails/generators/job/templates/application_job.rbの修正です。

デフォルトで生成するApplicationJobretry_ondiscard_onのexampleを追加しています。


Merge pull request #26059 from rails/rename-deadlock-detected-to-deadlocked

Active Recordの修正です。

DeadlockDetectedクラスをDeadlockedにリネームしています。このエラーが発生する場合、deadlockを検出したのではなく、deadlock自体が発生している状態の為、との事です。


Don't assume all hashes are from multiparameter assignment in composed_of

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

composed_ofを使用しているattributeにHashのインスタンスを設定、かつ、 Hashの数とHashのkeysの最大の値が一致しない場合にエラーになっていたのを、正常に動作するよう修正しています。

class Customer < ActiveRecord::Base
  composed_of :fullname_no_converter, :mapping => %w(name to_s), class_name: "Fullname"
end

customer = Customer.new
customer.fullname_no_converter = { first: "Barney", last: "Stinson" } # この際に`ArgumentError`が発生してしまっていた

Rails 4.2以降でエラーになるようになっていたのですが、Rails 4.1までは動作していた挙動だった為、再度正常に動作するよう修正したようです。