Rails アプリ開発中のDB内容確認における注意点
これは原因がわかりにくいのでメモ。
問題概要
DBの値を更新したはずなのに、 rails console
でその変更が確認できない
問題詳細
rails console
はご存知 irb で 各 Rails のモデル操作のテストができる優れもの。よく使う方は多いと思う。今回は別ウィンドウでこの rails console
を立ち上げ、別ウィンドウで rails server
を立ち上げていた。
rails server
側でDBの中身を書き換えた後、 rails console
から User.all.to_a
とかで出力しても、買えたはずのデータが変わっていないという事態に陥った。
原因
これは Rails が裏で rails console
のクエリの結果をキャッシュしているようだ。
rails server
側でDBの中身を書き換えたら、 rails console
は一旦再起動してアクセスしないと変化が確認できないっぽい。
これは原因の特定がとてもわかりづらく、結果として無駄な時間を消費する羽目になるので、今後 railsアプリ開発をする方は注意していただきたい。