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

u16suzuの blog

u16suzu のブログです。

たまにはRailsのIssueを読んでみる

rails rails

今日はこのIssueを読んでみた

ActionController::Parameters#== does not works as expected · Issue #21032 · rails/rails · GitHub

hash = { foo: :bar }
params = ActionController::Parameters.new(hash)
params == hash #returns false

あるHashから生成した ActionController::Parameters オブジェクトと生成に使ったHash

の同一性が失われてしまっている(等位性を比較してもtrueにならない)というIssue

ActionController::Parameters.new が使っている ActiveSupport::HashWithIndifferentAccessが

内部で シンボルを文字列に変換して保持してしまう事が原因

ActiveSupport::HashWithIndifferentAccess に '==' をオーバーライドさせればよさそうという コメントがついている.