Ho riscontrato uno strano problema durante l'utilizzo del modulo ActiveRecord :: Store nell'app Ruby on Rails. Come ho capito, questo modulo usa il metodo 'serialize' sotto la cappa così da serializzare i dati in formato yaml con ruby built-in psych gem.Ruby - LoadError enc/trans/single_byte
funziona bene la maggior parte del tempo, ma a volte ottengo 500 errore con il seguente messaggio:
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'
Come potete vedere, io uso rbenv e Ruby 1.9.3-P286. Il mio sistema è Ubuntu 11.10. Il file richiesto esiste ~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/i686-linux/enc/trans/single_byte.so
. Lo stesso errore che ho riscontrato con Ruby 1.9.3-p194. E la parte più strana di questo problema che questo errore si verifica di volta in volta.
Quindi forse qualcuno ha riscontrato questo problema e ha già trovato una soluzione? O sembra più un bug in psicologia e dovrei presentarlo al suo manutentore?
Grazie in anticipo per qualsiasi aiuto!
EDIT: il problema non è legato direttamente alla gemma psichica. È un problema generale con una configurazione insolita di rubini. Vedere la risposta accettata sotto per i dettagli.
rking, grazie per il vostro consiglio! Mi hai indicato nella giusta direzione. È risolto. Il problema era banale: uso caratteri non ASCII nel mio codice sorgente, quindi devo attivare la modalità unicode nell'interprete ruby (attraverso commenti magici). Ma a causa di un'insolita configurazione (directory home in cui Ruby è stato installato chiuso dall'accesso da parte di altri utenti), ruby non poteva usare le sue cose interne per transcodificare il mio codice. Soluzione: aprire dir dove ruby è installato per l'utente che avvia l'interprete Ruby. rking, potresti completare la risposta con queste informazioni in modo che io possa accettarla come soluzione finale? Spero che aiuti qualcuno. – rgt600