2017-01-27 23 views
0

CドライブでWindows 10 bashを使用してRuby on Railsをセットアップしました。私はそれを設定するためにrbenvを使い、Rubyのバージョンを2.4.0に更新しました。その後、4.2.6にレールのバージョンを更新し、バンドルのアップデートを実行して私のgemを更新しました。そして、私はレールサーバーを走らせましたが、サーバーを起動していません。代わりにサーバーがすぐに終了し、次のエラーが表示されます。Ruby on Rails - 起動直後にレールサーバーが終了する(SystemStackError)

/home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/thread_safe-0.3.5/lib/thread_safe/cache.rb:155: warning: constant ::Fixnum is deprecated /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/thread_safe-0.3.5/lib/thread_safe/cache.rb:155: warning: constant ::Fixnum is deprecated /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/fspath-3.0.1/lib/fspath.rb:154: warning: constant ::Fixnum is deprecated => Booting Thin => Rails 4.2.7.1 application starting in development on http://localhost:3000 => Run rails server -h for more startup options => Ctrl-C to shutdown server /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/thread_safe-0.3.5/lib/thread_safe/cache.rb:155: warning: constant ::Fixnum is deprecated /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:121: warning: constant ::Fixnum is deprecated /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:121: warning: constant ::Bignum is deprecated Exiting /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:124:in block (2 levels) in <class:Numeric>': stack level too deep (SystemStackError) from /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:131:in block (2 levels) in ' from /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:131:in block (2 levels) in <class:Numeric>' from /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:131:in block (2 levels) in ' from /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:131:in block (2 levels) in <class:Numeric>' from /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:131:in block (2 levels) in ' from /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:131:in block (2 levels) in <class:Numeric>' from /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:131:in block (2 levels) in ' from /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:131:in block (2 levels) in <class:Numeric>' ... 5011 levels... from /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-4.2.7.1/lib/rails/commands/commands_tasks.rb:39:in run_command!' from /home/yschang/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/railties-4.2.7.1/lib/rails/commands.rb:17:in <top (required)>' from bin/rails:4:in require' from bin/rails:4:in `'

何か助けていただければ幸いです。ありがとう。

答えて

0

Ruby 2.3.x以前のバージョンでは、インスタンス化または直接アドレス指定しない基本クラスIntegerがあります。代わりに、限られた精度で、または非常に大きな数を扱うことができると思われるより遅いBignumを使用して、想定される高速のFixnumに対処します。

Ruby 2.4.0では、メンテナーはFixnumとBignumを「非難する」という真の驚くべき決断を下し、両方をIntegerに変換しました。 FixnumまたはBignumを使用するコードでは、警告が表示されます。たとえば、42のクラスでイントロスペクションするテストやその他のコードでは、Fixnumの代わりにIntegerという回答が得られます。

これはRuby 2.3.x以前または2.4.0以降で実行したい実世界のコード(例:gem)で処理するのが難しい変更です。非常にです。

Rails 4.2はRuby 2.4に先立ち、完全に互換性があるかどうかわかりません。私の推測では、あなたのシステムのRubyを2.3.3にダウングレードすると、あなたの問題が解決されます。それは確かにあなたのコンソールを汚染しているすべての警告を取り除き、クラッシュがまだ起こった場合、根本的な原因を解消する関連メッセージを見るチャンスを与えます。

関連する問題