ラムダ関数が保存できない??
railsで自作のクラスをsessionに入れて保存しようとしたら、
エラーが出た。
エラーの内容は以下のとおり
no marshal_dump is defined for class Proc
初めて見たエラーでよくわからない。
Procという単語があるとこから推測するとクロージャが原因だろうか。
自作クラスではコンストラクタでインスタンス変数に
クロージャをセットしている。
そのクロージャ内からコンストラクタの引数をレキシカル参照している。
どうやらそれが原因らしい。
引数をインスタンス変数に、
クロージャをメソッドに、
それぞれ置き換えてやると正しく動作した。
実はsessionがというよりクロージャをテキストファイルに
シリアライズして保存する事ができないらしい。
クロージャを保存しようとするとその実行に対するスタックも
保存する必要があるからなのかな??