2014/02/20

Rails production環境だけで発生した不具合

ひょっとすると、とても初歩的なことなのかもしれないが、Railsのdevelopment、test環境だと問題なく動いていたものがproduction環境で動かなくなる事態にハマった。 調べていくとconfig/environmentsにある各環境の設定ファイルにある

config.cache_classes = true

が動作の差異を生んでいた模様。
デフォルトではproduction環境だけがtrueになっている項目。falseの場合はアクセスの度にアプリケーションのクラスがリロードされる。trueにすると一度だけ読み込む。

とあるクラスをモンキーパッチでオーバーライドしており、その都度読み込まれて局所的に動いていたものが、true設定の場合は全部の使用箇所に影響してしまったというトホホな感じだった。
原因がわかるとどうってことないのだが、今後注意したい。

にほんブログ村 IT技術ブログ IT技術メモへ