警告:不建议使用:: Fixnum生成新模型时

时间:2017-01-04 12:36:19

标签: ruby-on-rails ruby ruby-on-rails-5

我试图为此找到一些解决方案,但我真的找不到与运行rails命令时出现的错误相关的任何内容:

  

rails生成模型书名:字符串摘要: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

有人知道可能导致这些错误的原因吗?

5 个答案:

答案 0 :(得分:79)

出现此警告是因为您使用的是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,摆脱了警告。

答案 1 :(得分:18)

我通过更新rails

修复了我的问题
bundle update rails

答案 2 :(得分:9)

我假设您使用的是Rails 5?查看this link(向下)。看起来这些警告将随着#27458的发布而消失。

答案 3 :(得分:6)

如果主动支持中的这些弃用警告是您看到的唯一警告,您可以通过传递带有-W0选项的RUBYOPT bash变量来抑制它们,这将使静音。

所以代替rails server 尝试:RUBYOPT="-W0" rails serverRUBYOPT="-W0" bin/rails server

在rails 5.0中你可能想养成使用bin / rails而不仅仅是rails的习惯,因为那是全局rails版本,可能与你的本地rails版本相同或不同。

答案 4 :(得分:0)

我已将therubyracer个宝石从版本“ 0.12.2”修复为“ 0.12.3”