RubyonRailsアプリでActiveRecord::Storeモジュールを使用しているときに奇妙な問題が発生しました。私が理解しているように、このモジュールは内部で「serialize」メソッドを使用するため、データをruby組み込みのpsychgemを使用してyaml形式にシリアル化するだけです。
ほとんどの場合は問題なく動作しますが、次のメッセージで500エラーが発生することがあります。
LoadError (cannot load such file -- enc/trans/single_byte):
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/psych/visitors/emitter.rb:27:in `write'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/psych/visitors/emitter.rb:27:in `end_document'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/psych/visitors/emitter.rb:27:in `visit_Psych_Nodes_Document'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/psych/visitors/visitor.rb:15:in `visit'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/psych/visitors/visitor.rb:5:in `accept'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/psych/visitors/emitter.rb:20:in `block in visit_Psych_Nodes_Stream'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/psych/visitors/emitter.rb:20:in `each'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/psych/visitors/emitter.rb:20:in `visit_Psych_Nodes_Stream'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/psych/visitors/visitor.rb:15:in `visit'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/psych/visitors/visitor.rb:5:in `accept'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/psych/nodes/node.rb:46:in `yaml'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/psych.rb:243:in `dump'
ご覧のとおり、私はrbenvとruby1.9.3-p286を使用しています。私のシステムはUbuntu11.10です。必要なファイルが存在し~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/i686-linux/enc/trans/single_byte.so
ます。ruby1.9.3-p194で発生したのと同じエラー。そして、このエラーが時々発生するというこの問題の最も奇妙な部分。
では、誰かがこの問題に遭遇し、すでに解決策を見つけているのではないでしょうか。それとも、それは精神のバグのように見えますか?私はそれをそのメンテナに提出する必要がありますか?
助けてくれてありがとう!
編集:問題は直接サイケジェムに関連していません。これは、異常なルビーのセットアップに関する一般的な問題です。詳細については、以下の承認された回答を参照してください。