久保 路 @amamanamam
2023 年 10 月 27 日
Kaigi on Rails 2023
私たちは database.yml に必要情報を記述し、適当なモデルの find / where メソッドを使うだけで、いつの間にか DB 接続の確立がなされて、ほしいデータがいつでも簡単に取得できるようになっています。
さて、 ActiveRecord 内部ではどのような処理を以て、この簡単さを実現しているのでしょうか?普段あまり着目しない部分ですので、ブラックボックス化してる方も少なくないと思います。 そこで、本セッションでは MySQL への接続確立するまでの ActiveRecord 内部の動きについて紹介します。 具体的には、接続に関する各クラスの役割( active_record/connection_handler 等)を適宜紹介しつつ、実際に find メソッドをデバッグ実行した際のスタックトレースを通して、接続確立までの ActiveRecord の内部処理の全容を持ち帰っていただきます。