⛳
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