2011-06-19 15 views
5

का उपयोग करके "अनियमित स्थिर एन्कोडिंग" मैं बुद्धिमानी के अंत में हूं और इस एफ * # $^एन्कोडिंग मुद्दे पर कुछ मदद के लिए आप सभी को बदल रहा हूं।आरवीएम, रूबी 1.9.2, बंडलर और यात्री

मैं ड्रीमहोस्ट पर रूट अनुमतियों के साथ एक निजी सर्वर पर चल रहा हूं। यहां मेरे पर्यावरण और संस्करणों के बारे में कुछ है।

$ `which ruby` -v 
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] 
$ `which bundle` -v 
Bundler version 1.0.15 
$ `which rails` -v 
Rails 3.0.9 

इस त्रुटि के अलावा, मेरे रेल ऐप बिना किसी समस्या के ठीक चलते हैं। हालांकि, जब मैं इसे encode विधि का उपयोग कर एन्कोडिंग एक स्ट्रिंग को बदलने की कोशिश:

NoMethodError: undefined method `encode' for "foobar":String 

encodeshould be परिभाषित लेकिन यह नहीं है!

$ irb 
ruby-1.9.2-p180 :001 > Encoding 
=> Encoding 
ruby-1.9.2-p180 :002 > "foobar".encode('utf-8') 
=> "foobar" 

लेकिन अगर मैं रेल बंडल कार्यकारी के माध्यम से कंसोल का उपयोग कर प्रयास करें, Encoding नहीं पाया जाता है:

$ bundle exec rails c staging 
Loading staging environment (Rails 3.0.9) 
ruby-1.9.2-p180 :001 > Encoding 
NameError: uninitialized constant Encoding 
    from /[REDACTED]/shared/bundle/ruby/1.8/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb:206:in `const_missing' 
    from (irb):1 
ruby-1.9.2-p180 :002 > "foobar".encode('utf-8') 
    NoMethodError: undefined method `encode' for "foobar":String 

जाहिर है सही ढंग से सेटअप, लेकिन मैं कुछ लोड हो रहा है नहीं है Encoding अगर मैं irb में कोशिश पाया जाता है मुझे यकीन नहीं है कि इसे कहां देखना है। मुझे यहां क्या समझ नहीं आ रहा है?


अद्यतन 6/19/2011

के रूप में रयान बिग ने कहा, यह उत्सुक है कि रत्नों के लिए निर्देशिका पथ 1.8 है। हालांकि, चल bundle exec पता चलता है कि बंडलर सही गहरे लाल रंग का उपयोग करते हुए और रेल है संस्करणों:

$ bundle exec which ruby 
/path/to/.rvm/rubies/ruby-1.9.2-p180/bin/ruby 
$ bundle exec `which ruby` -v 
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] 
$ bundle exec which rails 
/path/to/shared/bundle/ruby/1.8/bin/rails 
$ bundle exec `which rails` -v 
Rails 3.0.9 

जाहिर है कुछ यहाँ wonky है ... मैं सिर्फ क्या पता नहीं है।


अद्यतन 6/26/2011

सीमस $LOAD_PATH के लिए कहा ...


अद्यतन 2011/06/26 (बाद में)

सीमसके लिए पूछा गयाऔर pp ENV ... ENV आउटपुट में, मैंने पाया कि GEM_PATH सही नहीं था। मेरी staging.rb पर्यावरण फ़ाइल में, मेरे पास है:

GEM_HOME = "/home/[REDACTED]/.rvm/gems/[email protected][REDACTED]" 
GEM_PATH = "/home/[REDACTED]/.rvm/gems/[email protected][REDACTED]:/home/[REDACTED]/.rvm/gems/[email protected]" 

... जो स्पष्ट रूप से सम्मानित किया जा रहा है।मेरी कोड में कहीं और नहीं वहाँ GEM_HOME या GEM_PATH


अद्यतन 6/27/2011

सीमस .bundle/config सामग्री के लिए कहा के एक उल्लेख ...

+2

आपका '/ साझा/बंडल/गहरे लाल रंग का/1.8 /' इसे दूर देता है: अपने कंसोल अभी भी 1.8 1.9 उपयोग कर रहा है, नहीं। –

+0

लेकिन प्रॉम्प्ट "रूबी-1.9.2-पी 180" कहता है? – coneybeare

+0

@ कनीबीयर: लेकिन '/ साझा/बंडल/रूबी/1.8' 1.8 कहता है? यदि आप इसका उपयोग नहीं कर रहे हैं तो '/ साझा/बंडल/रूबी/1.8' निकालें। आपको फिर से 'बंडल इंस्टॉल' चलाने की आवश्यकता हो सकती है। –

उत्तर

0

UPDATED एक ही विचार (है कि GEM_HOME गड़बड़ है), लेकिन अधिक सुझाव

आपका GEM_HOME गड़बड़ है, संभवतः क्योंकि आपका पाथ गड़बड़ है। आप तब

$ bundle install 

चलाने के लिए अपनी खोल

$ export PATH=[your current path but with rvm's ruby 1.9 at the front] 

में निम्नलिखित वातावरण चर को सेट कर सकें यदि वह काम नहीं करता है, अपने खोल में इस सेटिंग भी कोशिश

$ export GEM_HOME=[your ruby 1.9 gem home] 

और फिर

$ bundle install 
फिर से चलाएं

इस उत्तर से नए विचारों: Using RVM, bundler does not install in proper gemset when gems are installed in a different ruby version

+0

इससे मदद नहीं मिली। मैंने अपना साझा/बंडल फ़ोल्डर हटा दिया, और बंडल इंस्टॉल कमांड को फिर से चलाया। यह अभी भी इसे 1.8 के रूप में सेट करता है। मुझे लगता है कि मणि पथ के नाम के रूप में केवल 1.8 है, हालांकि सामग्री के रूप में नहीं। फ़ोल्डर के अंदर, सभी रत्न ठीक और सबसे वर्तमान हैं। – coneybeare

+0

स्पष्ट होने के लिए, जिस तरह से मैंने इसे चेक किया है, boot.rb फ़ाइल को इंगित करने के लिए संपादित करना है, साझा बंडल निर्देशिका को हटाएं, एक बंडल इंस्टॉल को फिर से करें, फिर एन्कोडिंग मौजूद होने पर रेल सी में जांचें। – coneybeare

+0

क्या आपने पूरी तरह से अनइंस्टॉल किया है और बंडलर मणि को पुनर्स्थापित किया है? यदि आपके पास है तो आपकी .bundle/config फ़ाइल की सामग्री क्या हैं? –

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