복붙노트

[RUBY-ON-RAILS] 루비 2.4과 너무 깊이 레일 4 스택 레벨 (SystemStackError)

RUBY-ON-RAILS

루비 2.4과 너무 깊이 레일 4 스택 레벨 (SystemStackError)

나는 레일 4.0.8에서 새로 생성 된 프로젝트를 실행하기 위해 노력하고있어하지만 난 수신 오류 :

    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 : 루비와 레일이 문제를 해결할 것입니다,하지만 난 그렇게 싶지 않다. Beasically 나는 exampole를 들어, 레일의 두 버전을 설치 한 것으로 whant : 4 레일 잘으로 5 레일. 그 구성은 가능합니까?

해결법

  1. ==============================

    1.루비 2.4에서는 정수 타입의 통일이 있었다 (즉, Fixnum이라는하고 Bignum이 지금 똑같은 일이 있습니다 : 정수). 클래스의 구분에 의존 기존 보석 꽤 많은 비 호환성에이 결과.

    루비 2.4에서는 정수 타입의 통일이 있었다 (즉, Fixnum이라는하고 Bignum이 지금 똑같은 일이 있습니다 : 정수). 클래스의 구분에 의존 기존 보석 꽤 많은 비 호환성에이 결과.

    ActiveSupport 이전 버전의 데이터를 직렬화 할 때 위에이 통일 발프 좋아하지 않는 것들 중입니다. 따라서, 당신은 두 가지 옵션 중 하나를 가지고 :

  2. ==============================

    2.저도 같은 오류를 가지고,하지만 난 5.0으로 업그레이드하지 않는, 내 응용 프로그램은 매우 크고 upgrate 너무 많은 시간이 걸립니다. 루비 2.4 지원 4.2.8 첫번째 레일 릴리스로 레일로 레일 4.1.7을 업그레이드하고 있습니다 :

    저도 같은 오류를 가지고,하지만 난 5.0으로 업그레이드하지 않는, 내 응용 프로그램은 매우 크고 upgrate 너무 많은 시간이 걸립니다. 루비 2.4 지원 4.2.8 첫번째 레일 릴리스로 레일로 레일 4.1.7을 업그레이드하고 있습니다 :

    Gemfile에 :

    gem 'rails', '4.2.8'
    

    그때:

    bundle update rails
    
  3. ==============================

    3.오류에 관해서, 당신은 레일 및 ActiveSupport (이 중 특히 이전 버전)이 가장 가능성이 아직 지원하지 않는 단지 출시 루비 2.4을 실행하고 있습니다.

    오류에 관해서, 당신은 레일 및 ActiveSupport (이 중 특히 이전 버전)이 가장 가능성이 아직 지원하지 않는 단지 출시 루비 2.4을 실행하고 있습니다.

    이 레일 가이드는 레일 버전 (4.0.8) 루비 2.0 선호를 말한다.

    당신은 하나가 당신의 레일 설치 (보석 '레일', '5.0')을 업그레이드하거나 버전 관리자와 루비의 이전 버전으로 다운 그레이드하여 오류를 해결할 수 있습니다 (예를 들어, $ 2.3.0 설치 RVM, RVM 사용 2.3.0 참조).

  4. from https://stackoverflow.com/questions/41504106/ruby-2-4-and-rails-4-stack-level-too-deep-systemstackerror by cc-by-sa and MIT license