Session : Symbols hash keys getting converted to literals keys in next request

github.com

issue自体は古いですが最近調べても同じ挙動でした(rails6)

ただ、memory cacheもredis cacheもリクエストの前後でkeyが変わったりしないので、sessionに複雑な構造を持たせる場合はプロジェクトの最初の方から対応しておかないとはまる。

https://github.com/rails/rails/blob/7-0-stable/actionpack/lib/action_dispatch/middleware/session/cookie_store.rb#L90

やっぱりrails7でもまだご健在な仕様みたいです。

この現象に出会ったのは、ログイン前のショッピングカートをsessionに保存するという仕様のためでした。

ログイン後はもちろんDBなので、ログイン前後で実装が異なり2倍近いコストがかかります(いやそれ以上か?)。

mysqlにあるmemory engineみたいなのもAuroraには無い様子。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Reference.html

InnoDB ストレージエンジンを使用します