振り返ると恥ずかしくなるのが私の歴史。そのときは真面目に書いていた訳でね。そんな今の私を書いていく。2010-06-01RailsのスレッドセーフrailsRails2.2からスレッド対応になったと聞いていたけど、スレッドセーフなのか気になって調べてみた。コントローラインスタンスがリクエスト毎に作成されることを確かめただけ。scaffoldで作成したコントローラに対して下記を書く。self.object_idいくつかリクエストを投げると、以下の主力が得られた。3602365437063758よしよし。リクエスト毎にコントローラオブジェクトが異なっている。クラス変数として配列オブジェクトを作成し、リクエスト毎に作成されるインスタンスを格納していこう。このようにすれば、リクエストの度に配列サイズが増えていくはず。下記のように、毎回、配列サイズを出力する。end何回かリクエストを投げると、449414546145981465014702147541あれれ・・・。クラス変数なのにインスタンス間で共有されていない・・・。everydayを発見。次のように書いてあった。クラスの再ロードは基本されない。developmentでは、リクエスト毎にクラスをロードしてるってことだね。いえば、どこかで読んだ記憶がある。RAILS_ENV=productionとして実行すると、期待した結果となった。27521275622760327644よしよし。Rubyって、ソースを変更したらすぐ反映されるものだと思ってた。それがスクリプト言語の特徴なのだと思っていた。productionモードだと、上記の出力をコメントアウトにしても、即時に反映されない。最初にロードされたままになっている。これがRubyのデフォルトの挙動なのかな。これでは開発しにくい。開発時は、APサーバ起動後、頻繁にコードを変更するからリクエスト毎にクラスロードが走らないと困る。