2012-11-07 17 views
6

रेल रूच पर मेरे रूबी में ActiveRecord :: Store मॉड्यूल का उपयोग करते समय मुझे एक अजीब समस्या का सामना करना पड़ा। जैसा कि मैं समझता हूं, यह मॉड्यूल हुड के तहत 'धारावाहिक' विधि का उपयोग करता है, इसलिए यह आपके डेटा को रूबी अंतर्निहित मनोमिक रत्न के साथ यम प्रारूप में क्रमबद्ध करता है।रूबी - लोडरर एन्क/ट्रांस/सिंगल_बाइट

यह ठीक समय के सबसे अधिक काम करता है, लेकिन कभी कभी मैं निम्न संदेश के साथ 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 का उपयोग करें। मेरा सिस्टम उबंटू 11.10 है। आवश्यक फ़ाइल ~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/i686-linux/enc/trans/single_byte.so मौजूद है। एक ही त्रुटि मुझे रूबी 1.9.3-पी 1 9 4 के साथ सामना करना पड़ा। और इस समस्या का सबसे अजीब हिस्सा यह त्रुटि समय-समय पर होती है।

तो शायद किसी को भी इस समस्या का सामना करना पड़ा और पहले ही समाधान मिला है? या यह मन में एक बग की तरह लगता है और मुझे इसे अपने रखरखाव में फाइल करना चाहिए?

किसी भी मदद के लिए अग्रिम धन्यवाद!

संपादित करें: समस्या सीधे मन मणि से संबंधित नहीं है। असामान्य रूबी सेटअप के साथ यह सामान्य समस्या है। विवरण के लिए नीचे दिए गए स्वीकृत उत्तर देखें।

उत्तर

1

क्या यह आपके विकास पर्यावरण की आरामदायक सीमाओं के भीतर हो रहा है? यदि ऐसा है, तो मैं इसे pry-rescue के Pry.rescue do … end ब्लॉक के दौरान चलाने और वहां पर घूमने पर विचार करना चाहूंगा।

मुझे डेटा अंतर पर संदेह है। क्या इस पेड़ में जानबूझकर शामिल कोई गैर-ASCII है? आप इसे शिकार हो सकता है कुछ इस तरह के साथ:

ruby -e 'Dir["**/*.yml"].each{|e| File.read(e)[/[^\x0-\x7f]/] and puts e}' 

आपके द्वारा नीचे दर्शाई के रूप में, rbenv स्थापना अन्य उपयोगकर्ताओं के साथ साझा किया जाता है, इसलिए किसी भी परिवर्तन पर अनुमतियों को फिर से करना सुनिश्चित करें:

chmod a+r -R ~/.rbenv/ 

या शायद src जैसे साझा समूह बनाएं, फिर:

chgrp src ~/.rbenv && chmod g+r -R ~/.rbenv 
+0

rking, आपकी सलाह के लिए धन्यवाद! आपने मुझे सही दिशा की ओर इशारा किया। यह हल हो गया है। समस्या छोटी थी: मैं अपने स्रोत कोड में गैर ASCII वर्णों का उपयोग करता हूं इसलिए मुझे रूबी दुभाषिया (जादू टिप्पणियों के माध्यम से) में यूनिकोड मोड चालू करना होगा। लेकिन असामान्य सेटअप (होम निर्देशिका जहां रूबी अन्य उपयोगकर्ताओं द्वारा एक्सेस से बंद किया गया था) की वजह से रूबी मेरे कोड को ट्रांसकोड करने के लिए अपनी आंतरिक सामग्री का उपयोग नहीं कर सका। समाधान: खुली डीआईआर जहां कम से कम उपयोगकर्ता को रूबी स्थापित किया जाता है जो रूबी दुभाषिया लॉन्च करता है। rking, क्या आप इस जानकारी के साथ अपना उत्तर पूरा कर सकते हैं ताकि मैं इसे अंतिम समाधान के रूप में स्वीकार कर सकूं? मुझे उम्मीद है कि यह किसी की मदद करेगा। – rgt600

संबंधित मुद्दे