⛳
Rails の main ブランチに attributes_for_inspect = :all になる対応が入った
以前『Rails 7.2 だと inspect で id しか出力されなくてつらい』みたいな記事を書いたんですが、そのあたりの改修が Rails の main ブランチに取り込まれました。
これにより普段使いでは id しか出力されなくて困る、みたいなことは基本的になくなるはずです。
どういう対応がされたのか
対応自体は以下の PR になります。
厳密な対応としては以下のような感じ
- production 環境の設定では
configでattributes_for_inspect = [:id]がデフォルト値として設定されるようになった - console では
production環境でも必ずActiveRecord::Base.attributes_for_inspect = :allが反映されるようになった
Rails 7.2 では attributes_for_inspect のデフォルト値を [:id] でハードコーディングされていたんですがこの PR では :all になるように置き換えられています。
その上で config で production 環境では attributes_for_inspect = [:id] が設定されるようになった形ですね。
ただし、console では production 環境でも .attributes_for_inspect = :all が強制的に設定されるようになったみたいです。
これなんですが逆にいうと『production 環境で秘匿したい情報が attributes_for_inspect では制御できなくなった』と言い換えることもできそうなのでその部分はちょっとよくなさそうな気がしていますねえ。
ここら辺は良し悪しがありそうなので何かしら理由があれば対応されそうかも?
また、どちらにしても console 以外では依然として id しか出力されないので何かしら意図しない挙動につながる可能性があるので注意する必要がありそうです。
Discussion