2017-01-06 6 views
31

मैं रेल 4.0.8 में नव निर्मित परियोजना को चलाने के लिए कोशिश कर रहा हूँ, लेकिन मैं प्राप्त करते हैं और त्रुटि:रूबी 2.4 और रेल 4 ढेर स्तर बहुत गहरा (SystemStackError)

rails s 
=> Booting WEBrick 
=> Rails 4.0.8 application starting in development on http://0.0.0.0:3000 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 
/usr/local/lib/ruby/gems/2.4.0/gems/activesupport-4.0.8/lib/active_support/core_ext/numeric/conversions.rb:121: warning: constant ::Fixnum is deprecated 
/usr/local/lib/ruby/gems/2.4.0/gems/activesupport-4.0.8/lib/active_support/core_ext/numeric/conversions.rb:121: warning: constant ::Bignum is deprecated 
Exiting 
/usr/local/lib/ruby/gems/2.4.0/gems/activesupport-4.0.8/lib/active_support/core_ext/numeric/conversions.rb:124:in `block (2 levels) in <class:Numeric>': stack level too deep (SystemStackError) 
    from /usr/local/lib/ruby/gems/2.4.0/gems/activesupport-4.0.8/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/activesupport-4.0.8/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/activesupport-4.0.8/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/activesupport-4.0.8/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/activesupport-4.0.8/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/activesupport-4.0.8/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/activesupport-4.0.8/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/activesupport-4.0.8/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>' 
    ... 5532 levels... 
    from /usr/local/lib/ruby/gems/2.4.0/gems/railties-4.0.8/lib/rails/commands.rb:71:in `tap' 
    from /usr/local/lib/ruby/gems/2.4.0/gems/railties-4.0.8/lib/rails/commands.rb:71:in `<top (required)>' 
    from bin/rails:4:in `require' 
    from bin/rails:4:in `<main>' 

रूबी संस्करण:

Rails 4.0.8 

मेरे Gemefile:

source 'https://rubygems.org' 

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.0.8' 

# Use sqlite3 as the database for Active Record 
gem 'sqlite3' 

# Use SCSS for stylesheets 
gem 'sass-rails', '~> 4.0.2' 

# Use Uglifier as compressor for JavaScript assets 
gem 'uglifier', '>= 1.3.0' 

# Use CoffeeScript for .js.coffee assets and views 
gem 'coffee-rails', '~> 4.0.0' 

# See https://github.com/sstephenson/execjs#readme for more supported runtimes 
# gem 'therubyracer', platforms: :ruby 

# Use jquery as the JavaScript library 
gem 'jquery-rails' 

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks 
gem 'turbolinks' 

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder 
gem 'jbuilder', '~> 1.2' 
gem 'json', github: 'flori/json', branch: 'v1.8' 
group :doc do 
    # bundle exec rake doc:rails generates the API under doc/api. 
    gem 'sdoc', require: false 
end 

मैं क्योंकि मेरे मशीन पर स्थापित करने से पहले मैं 5.0 रेल है रेल को पुनर्स्थापित करने की कोशिश की।

स्थानीय रत्न:

*** LOCAL GEMS *** 

autoprefixer-rails (6.6.0) 
coffee-rails (4.2.1, 4.0.1) 
font-awesome-rails (4.7.0.1) 
jquery-atwho-rails (1.3.2) 
jquery-rails (4.2.2, 3.1.4) 
rails (4.0.8, 4.0.0) 
rails-dom-testing (2.0.2) 
rails-html-sanitizer (1.0.3) 
rails_12factor (0.0.3) 
rails_serve_static_assets (0.0.5) 
rails_stdout_logging (0.0.5) 
sass-rails (5.0.6, 4.0.5) 
sprockets-rails (3.2.0, 2.3.3, 2.0.1) 

Meybe unistall: गहरे लाल रंग का और रेल इस समस्या का समाधान होगा, लेकिन मुझे लगता है कि क्या करना चाहते हैं न। असल में मैं रेल के दोनों संस्करणों को स्थापित करना चाहता हूं, उदाहरण के लिए: रेल 4 और रेल 5 भी। क्या यह विन्यास संभव है?

+0

आप किसी भी रूबी संस्करण प्रबंधक का उपयोग करें? [आरवीएम] की तरह (https://rvm.io/)? आप विभिन्न रत्नों को कॉन्फ़िगर कर सकते हैं। प्रत्येक रत्न रॉबी और रेल संस्करण से बना है। इसका मतलब है कि आप रूबी और रेल संस्करण के विभिन्न संयोजन को परिभाषित कर सकते हैं।विभिन्न विकास पर्यावरण के दौरान रत्न के बीच स्विच करें। – bananaappletw

+0

ऐसा लगता है कि रेल 4.2 में तय किया गया है। यहां देखें: https://github.com/rails/rails/pull/25161 – Casper

उत्तर

55

रूबी 2.4 में, पूर्णांक प्रकारों का एकीकरण था (यानी Fixnum और Bignum अब एक ही बात है: Integer)। यह मौजूदा रत्नों के साथ कुछ असंगतताओं पर परिणाम देता है जो कक्षाओं के भेद पर निर्भर थे।

ActiveSupport के पुराने संस्करण उन लोगों में से हैं जो डेटा को क्रमबद्ध करने की कोशिश करते समय इस एकीकरण और बारफ को पसंद नहीं करते हैं। इस प्रकार, आपके पास दो विकल्पों में से एक है:

  • आप रूबी को 2.4 से पहले के संस्करण में डाउनग्रेड कर सकते हैं, उदा। रूबी 2.3.x.
  • या आप रेल को नए संस्करण में अपग्रेड कर सकते हैं। अधिमानतः, यह रेल 5.x हो सकता है। 4.2-स्थिर शाखा में एक पैच भी है जिसे Rails 4.2.8 के साथ जारी किया गया था, जो इसे रेल 4.2 श्रृंखला का पहला संस्करण बनाता है जो आधिकारिक तौर पर रुबी 2.4 का समर्थन करता है। इससे पहले रेल संस्करण रूबी 2.4 के साथ संगत नहीं हैं।
+1

4.2.8 अब उपलब्ध है। https://github.com/rails/rails/issues/25125 – Rao

6

त्रुटि के संबंध में, आप केवल जारी किए गए रूबी 2.4 चला रहे हैं, जो रेल और सक्रिय समर्थन (विशेष रूप से इनमें से पुराने संस्करण) सबसे अधिक संभावना का समर्थन नहीं करते हैं।

This रेल गाइड आपके रेल संस्करण (4.0.8) रूबी 2.0 पसंद करते हैं।

आप या तो अपने रेल स्थापना (gem 'rails', '5.0') अपग्रेड करने पर या संस्करण प्रबंधक (जैसे $ rvm install 2.3.0; rvm use 2.3.0) के साथ रूबी के एक पुराने संस्करण में डाउनग्रेड द्वारा त्रुटि को ठीक कर सकते हैं।

+0

मैंने 'मणि' रेल ',' 5.0'' 'का उपयोग किया और मुझे 5.0.0 पर activerecord को अपडेट करने के लिए' बंडल अपडेट 'करने की भी आवश्यकता है। –

6

मुझे एक ही त्रुटि है, लेकिन मैं 5.0 तक अपग्रेड नहीं करना चाहता, मेरा ऐप बहुत बड़ा है और अपग्रेड बहुत अधिक समय लेता है। Gemfile में

:: मैं Rails 4.1.7 को Rails to 4.2.8 पहले रेल Ruby 2.4 समर्थन के साथ जारी उन्नयन कर रहा हूँ

gem 'rails', '4.2.8' 

तब:

bundle update rails 
संबंधित मुद्दे