warning: constant ::Fixnum is deprecated When generating new model
Ruby on-RailsRubyRuby on-Rails-5Ruby 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'