警告:常量 ::Fixnum 在生成新模型时已弃用
warning: constant ::Fixnum is deprecated When generating new model
我试图为此找到一些解决方案,但我真的找不到与我 运行 rails 命令时出现的错误相关的任何内容:
rails generate model Book title:string summary:text isbn:string
/home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:51: warning: constant ::Fixnum is deprecated
/home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:52: warning: constant ::Bignum is deprecated
/home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/core_ext/numeric/conversions.rb:138: warning: constant ::Fixnum is deprecated
Running via Spring preloader in process 3579
Expected string default value for '--jbuilder'; got true (boolean)
invoke active_record
identical db/migrate/20170104114702_create_books.rb
identical app/models/book.rb
invoke test_unit
identical test/models/book_test.rb
identical test/fixtures/books.yml
有人知道可能导致这些错误的原因吗?
我假设您使用的是 Rails 5?查看 this link(朝向底部)。看起来这些警告将随着版本 #27458 消失。
出现此警告是因为您使用的是 ruby 2.4.0.
此版本引入了此更改:Unify Fixnum and Bignum into Integer
公告见此处:https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/
警告来自 activesupport gem,它是 rails 的一部分,将在即将发布的版本中修复。
现在您可以忽略这些警告。
更新: Rails 5.0.2 has been released,消除了警告。
如果主动支持中的这些弃用警告是您看到的唯一警告,您可以通过传递带有 -W0 选项的 RUBYOPT bash 变量来抑制它们。
所以而不是 rails server
尝试:RUBYOPT="-W0" rails server
或 RUBYOPT="-W0" bin/rails server
在 rails 5.0 中,您可能希望养成使用 bin/rails 的习惯,而不仅仅是 rails,因为这是全球性的 rails 版本,可能会也可能不会与本地 rails 版本相同。
我通过更新 rails
修复了我的问题
bundle update rails
我修复了此更新 therubyracer
gem 从版本“0.12.2”到“0.12.3”
我试图为此找到一些解决方案,但我真的找不到与我 运行 rails 命令时出现的错误相关的任何内容:
rails generate model Book title:string summary:text isbn:string
/home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:51: warning: constant ::Fixnum is deprecated
/home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:52: warning: constant ::Bignum is deprecated
/home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/core_ext/numeric/conversions.rb:138: warning: constant ::Fixnum is deprecated
Running via Spring preloader in process 3579
Expected string default value for '--jbuilder'; got true (boolean)
invoke active_record
identical db/migrate/20170104114702_create_books.rb
identical app/models/book.rb
invoke test_unit
identical test/models/book_test.rb
identical test/fixtures/books.yml
有人知道可能导致这些错误的原因吗?
我假设您使用的是 Rails 5?查看 this link(朝向底部)。看起来这些警告将随着版本 #27458 消失。
出现此警告是因为您使用的是 ruby 2.4.0.
此版本引入了此更改:Unify Fixnum and Bignum into Integer
公告见此处:https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/
警告来自 activesupport gem,它是 rails 的一部分,将在即将发布的版本中修复。
现在您可以忽略这些警告。
更新: Rails 5.0.2 has been released,消除了警告。
如果主动支持中的这些弃用警告是您看到的唯一警告,您可以通过传递带有 -W0 选项的 RUBYOPT bash 变量来抑制它们。
所以而不是 rails server
尝试:RUBYOPT="-W0" rails server
或 RUBYOPT="-W0" bin/rails server
在 rails 5.0 中,您可能希望养成使用 bin/rails 的习惯,而不仅仅是 rails,因为这是全球性的 rails 版本,可能会也可能不会与本地 rails 版本相同。
我通过更新 rails
修复了我的问题bundle update rails
我修复了此更新 therubyracer
gem 从版本“0.12.2”到“0.12.3”