如何解决“警告:常量:: Fixnum已过时”错误

时间:2019-05-07 14:21:10

标签: ruby-on-rails ruby rubygems

当我尝试从RubyMine IDE运行Rails服务器时,出现错误:

C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:121: warning: constant ::Fixnum is deprecated
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:121: warning: constant ::Bignum is deprecated
ExitingTraceback

我当前正在使用Rails 4.2.7.1运行Ruby 2.5.5p157。我该怎么做才能运行网络应用程序?非常感谢您的帮助!


尝试运行网站时的完整日志:

C:\Ruby25-x64\bin\ruby.exe "C:/Users/Sam/Desktop/Takai/Website/bin/rails" server -b 127.0.0.1 -p 3000 -e development -b 0.0.0.0
=> Booting WEBrick
=> Rails 4.2.7.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:121: warning: constant ::Fixnum is deprecated
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/numeric/conversions.rb:121: warning: constant ::Bignum is deprecated
ExitingTraceback
 (most recent call last):
C:/Users/Sam/Desktop/Takai/Website/bin/rails: stack level too deep (SystemStackError)

Process finished with exit code 1

1 个答案:

答案 0 :(得分:2)

您正在使用旧版本的Rails和新版本的Ruby,而Rails希望使用新版本的Ruby中不再存在的某种东西(Fixnum)。

您有两个选择:

  1. 使用旧版本的Rails支持的Ruby版本。根据{{​​3}},Ruby 2.4应该可以为您工作。
  2. 将您的Rails应用程序更新为支持Ruby 2.5的较新版本的Rails。 Rails 5.1似乎是Rails的第一个版本,正式支持Ruby 2.5

第一个选项可能要容易得多。但是我仍然建议更新您的Rails版本,因为您的Rails版本是未维护的,将不再获得任何更新或安全性。