2012-06-18 20 views
13

मैं रेल पर काम कर रहा हूं, अचानक रेल सर्वर काम करना बंद कर देता है। यह ठीक काम कर रहा है और मैं का इस्तेमाल किया है आदेश [मंच विंडोज 7]रेल के लिए अपरिभाषित विधि 'write_inheritable_attribute' :: जनरेटर :: बेस: कक्षा (NoMethodError)

gem install -v=2.3.5 rails 

और जब मैं rails s उपयोग करें, यह निम्न त्रुटि दे रही है निम्नलिखित:

c:/Ruby193/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/rails_generator/options.rb:32:in `default_options': undefined method `write_inheritable_attribute' for Rails::Generator::Base:Class (NoMethodError) 
    from c:/Ruby193/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/rails_generator/base.rb:90:in `<class:Base>' 
    from c:/Ruby193/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/rails_generator/base.rb:85:in `<module:Generator>' 
    from c:/Ruby193/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/rails_generator/base.rb:48:in `<module:Rails>' 
    from c:/Ruby193/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/rails_generator/base.rb:6:in `<top (required)>' 
    from c:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
    from c:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
    from c:/Ruby193/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/rails_generator.rb:34:in `<top (required)>' 
    from c:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
    from c:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
    from c:/Ruby193/lib/ruby/gems/1.9.1/gems/rails-2.3.5/bin/rails:14:in `<top (required)>' 
    from c:/Ruby193/bin/rails:23:in `load' 
    from c:/Ruby193/bin/rails:23:in `<main>' 

$ rails -v 
Rails 2.3.5 
$ ruby -v 
ruby 1.9.3p194 (2012-04-20) [i386-mingw32] 

उत्तर

16

मुझे एक ही समस्या थी, लेकिन यह gem rmagick होने का नतीजा था।

gem uninstall rmagick 
gem cleanup 

और फिर मेरी ढेर में फिर से भाग गया bundle और यह मेरे लिए फिर से काम किया:

मैं निम्नलिखित भाग गया।

7

मैं इस मुद्दे को हल कर लिया है। निम्न आदेश का उपयोग करें और समस्या

gem install rails 

यह अद्यतन रेल और सभी चीजों को फिर से ढूंढने के लिए स्थापित करेगा।

1

मुझे यह समस्या थी, और ऐसा होता है कि मैं आरवीएम में गलत रूबी और रत्न का उपयोग कर रहा था।

3

आप रेल 3 या रेल 4 के नवीनतम संस्करण का उपयोग कर रहे हैं तो write_inheritable_attribute के बजाय class_attributes उपयोग करते हैं, अर्थात

class_attribute :variable_name 
self.variable_name = value 

बजाय

write_inheritable_attribute(:variable_name, value) 
+0

यह मैं मदद की एक रेल अद्यतन करने के लिए 2- रेल 3 और 4 के लिए स्टाइल प्लगइन धन्यवाद! – AJFaraday

7

रनिंग bundle exec rails s मेरे लिए काम किया।

मेरी परियोजना रेल 3.x का उपयोग कर रही थी, लेकिन जब मैं rails -v चला गया तो मुझे 2.3.17 मिला जो कि एक परियोजना द्वारा उपयोग किया गया संस्करण है जो मैंने पहले किया था। किसी भी तरह से इस संस्करण को स्थापित करना "डिफ़ॉल्ट" के रूप में सेट किया जाना चाहिए।

क्या कोई इसे समझा सकता है?

+0

मुझे एक ही समस्या है और एक स्पष्टीकरण पसंद आएगा। –

+0

सबसे पहले मणि स्थापित रेल का उपयोग करें, रेल – indb

0

(@ जेरेमी-च और @ एलेक्स विला समस्या में अपनी पहचान करने के लिए सही रास्ते पर हैं।)

समस्या है कि यहाँ रेल संस्करण 2 में rails ... आदेश एक जनरेटर है, में rails new ... के बराबर रेल 3+। तो rails s एक रेल 2 आदेश एक नया रेल 2 एप्लिकेशन उत्पन्न करने के लिए "एस" कहा जाता है (हम में से ज्यादातर जब हम लिखने जबकि rails s रेल इरादा 3 उपयोग, यानी एक सर्वर शुरू!)

आप एक मणि स्थापित है, यह आम तौर पर पथ में अपनी बाइनरी स्थापित करेगा, इसलिए आप इस त्रुटि को gem install rails -v 2.3.15 कर कर rails s कर सकते हैं क्योंकि ओपी कहता है। इसे ठीक करने के

तीन तरीके:

  • gem install rails रेल के एक नए संस्करण स्थापित करने के लिए (यदि आप एक संस्करण> = 3 निर्दिष्ट करने के लिए हो सकता है।0)
  • bundle exec rails s (केवल अगर आप अपने Gemfile में रेल 3)
  • एक रेल 2 परियोजना को चलाने के लिए हमेशा की तरह साथ एप्लिकेशन चलाएं बस है script/server
संबंधित मुद्दे