ボクココ

個人開発に関するテックブログ

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アプリ開発をする方は注意していただきたい。