avviso: constant :: Fixnum è deprecato durante la generazione di un nuovo modello


88

Ho provato a trovare una soluzione per questo, ma non sono riuscito a trovare nulla relativo agli errori che mi vengono visualizzati quando eseguo il comando rails:

rails genera il modello Titolo del libro: stringa riepilogo: testo isbn: stringa

/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?

Risposte:


86

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.


1
I use ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16] but also get this issue.
aircraft

1
How do I ignore the warnings? Running "rails s" fails
Sauron

@Sauron It should not fail because of warnings. Maybe you have some error additionally?
IngoAlbers

19

I fixed mine by updating rails

bundle update rails

1
This worked for me until opening a new terminal: bundle update geocoder Receiving the following error again, right before rails console starts: /home/moi/.rvm/gems/ruby-2.4.0/gems/geo-distance-0.2.2/lib/geo-distance/core_ext.rb:13: warning: constant ::Fixnum is deprecated
Forrest Wilkins

9

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


8

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.


0

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.