warning: constant ::Fixnum is deprecated When generating new model

Ruby on-RailsRubyRuby on-Rails-5

Ruby on-Rails Problem Overview


I've tried to find some solution for this, but I really couldn't find anything related with the errors that is appearing to me when I run the rails command:

> 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

Anyone know what may be causing these errors?

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

This warnings appear because you are using ruby 2.4.0.

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

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][2], which gets rid of the warnings.

[1]: https://bugs.ruby-lang.org/issues/12005 "Unify Fixnum and Bignum into Integer" [2]: http://weblog.rubyonrails.org/2017/3/1/Rails-5-0-2-has-been-released/

Solution 2 - Ruby on-Rails

I fixed mine by updating rails

bundle update rails

Solution 3 - Ruby on-Rails

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

Solution 4 - Ruby on-Rails

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.

Solution 5 - Ruby on-Rails

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser7374147View Question on Stackoverflow
Solution 1 - Ruby on-RailsIngoAlbersView Answer on Stackoverflow
Solution 2 - Ruby on-RailsmpalenciaView Answer on Stackoverflow
Solution 3 - Ruby on-RailsjvillianView Answer on Stackoverflow
Solution 4 - Ruby on-RailslsiebertView Answer on Stackoverflow
Solution 5 - Ruby on-RailsAnyelo PetitView Answer on Stackoverflow