session.id
をそのまま使ってクエリを実行すると、TypeError can't quote Rack::Session::SessionId
が起きる。
# Bad
user = User.find_by(session_id: session.id)
# => TypeError can't quote Rack::Session::SessionId
# Good
user = User.find_by(session_id: session.id.to_s)
# Success!
上記のコードはRails 5.2.4.2
で実行している。認証情報を扱うgemでこの例外が起きることもあるので、Railsのバージョンによってsession.id
の実装が異なるのかもしれない。
参考リンク
ruby on rails - TypeError - can't quote Rack::Session::SessionId - Stack Overflow