当生成新模型时,不推荐使用 Fixnum

我试图找到一些解决方案,但是我实在找不到任何与我在运行 Rail 命令时出现的错误相关的东西:

Rails 生成模型 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

有人知道是什么导致了这些错误吗?

100290 次浏览

I assume you're using Rails 5? Check out this link (towards the bottom). Looks like these warnings will go away with release #27458.

This warnings appear because you are using ruby 2.4.0.

This version introduced this change: Unify Fixnum and Bignum into Integer

See here for the announcement: https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/

The warnings come from the activesupport gem which is part of rails and will be fixed in an upcoming release.

For now you can just ignore those warnings.

Update: Rails 5.0.2 has been released, which gets rid of the warnings.

If these deprecation warnings in active support are the only warnings you are seeing, you can surpress them by passing a RUBYOPT bash variable with the -W0 option which will silence.

so instead of rails server try: RUBYOPT="-W0" rails server or RUBYOPT="-W0" bin/rails server

In rails 5.0 you may want to get in the habit of using bin/rails not just rails, since that's the global rails version which may or may not be the same as your local rails version.

I fixed mine by updating rails

bundle update rails

I fixed this updating therubyracer gem from version '0.12.2' to '0.12.3'