Ruby on RailsアプリケーションでActiveRecord :: Storeモジュールを使用しているときに奇妙な問題が発生しました。私が理解しているように、このモジュールはフードの下で 'シリアライズ'メソッドを使用しているので、データをyamlフォーマットにシリアル化します。Ruby-LoadError enc/trans/single_byte
それはOKほとんどの時間を動作しますが、時々私は、次のようなメッセージで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とルビー1.9.3-P286を使用します。私のシステムはUbuntu 11.10です。必要なファイルが存在します~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/i686-linux/enc/trans/single_byte.so
。 Ruby 1.9.3-p194と同じエラーが発生しました。そして、このエラーは時折発生するこの問題の最も奇妙な部分です。
誰かがこの問題に遭遇し、解決策を見つけた可能性がありますか?あるいは、それは精神のバグのように思えますし、メンテナにそれを提出する必要がありますか?
ありがとうございました!
EDIT:この問題は、精神的宝石とは直接関係しません。これは一般的ではないルビーセットアップの問題です。詳細については、以下の回答を参照してください。
rking、あなたの助言のおかげで!あなたは私に正しい方向を指摘しました。 解決しました。問題は簡単でした。私はソースコードに非ASCII文字を使用していますので、(魔法のコメントを通して)RubyインタプリタでUnicodeモードを有効にする必要があります。しかし、Rubyが他のユーザのアクセスから閉鎖されたホームディレクトリのような珍しい設定のために、rubyはコードをコード変換するために内部のものを使用することができませんでした。 解決方法:rubyインタープリタを起動するユーザーに少なくともrubyがインストールされている場所でopen dirを実行します。 rking、この情報で回答を完了することができますか?私は最終的な解決策としてそれを受け入れることができますか?私はそれが誰かを助けることを望む。 – rgt600