avertissement: constant :: Fixnum est obsolète lors de la génération d'un nouveau modèle

88

J'ai essayé de trouver une solution à cela, mais je n'ai vraiment rien trouvé lié aux erreurs qui m'apparaissent lorsque j'exécute la commande rails:

les rails génèrent le modèle Titre du livre: chaîne résumé: texte isbn: chaîne

/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

Quelqu'un sait ce qui peut être à l'origine de ces erreurs?

user7374147
la source

Réponses:

86

Ces avertissements apparaissent car vous utilisez ruby ​​2.4.0.

Cette version a introduit ce changement: Unifier Fixnum et Bignum en Integer

Voir ici pour l'annonce: https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/

Les avertissements proviennent du gem actifsupport qui fait partie des rails et sera corrigé dans une prochaine version.

Pour l'instant, vous pouvez simplement ignorer ces avertissements.

Mise à jour: Rails 5.0.2 a été publié , ce qui supprime les avertissements.

IngoAlbers
la source
1
J'utilise ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]mais j'obtiens aussi ce problème.
avion le
1
Comment ignorer les avertissements? Échec de l'exécution de "rails s"
Sauron
@Sauron Il ne devrait pas échouer à cause des avertissements. Peut-être avez-vous une erreur en plus?
IngoAlbers
19

J'ai réparé le mien en mettant à jour les rails

bundle update rails
mpalencia
la source
1
Cela a fonctionné pour moi jusqu'à l'ouverture d'un nouveau terminal: bundle update geocoderRéception de l'erreur suivante, juste avant le démarrage de la console des rails:/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

Je suppose que vous utilisez Rails 5? Consultez ce lien (vers le bas). Il semble que ces avertissements disparaîtront avec la version 27458.

jvillian
la source
8

Si ces avertissements d'obsolescence dans le support actif sont les seuls avertissements que vous voyez, vous pouvez les surpresser en passant une variable bash RUBYOPT avec l'option -W0 qui fera taire.

donc au lieu d' rails server essayer: RUBYOPT="-W0" rails serverouRUBYOPT="-W0" bin/rails server

Dans rails 5.0, vous voudrez peut-être prendre l'habitude d'utiliser bin / rails pas seulement des rails, car c'est la version globale des rails qui peut ou non être la même que votre version locale de rails.

lsiebert
la source