ostrzeżenie: stała :: Fixnum jest przestarzałe Podczas generowania nowego modelu

88

Próbowałem znaleźć rozwiązanie tego problemu, ale naprawdę nie mogłem znaleźć niczego związanego z błędami, które pojawiają się po uruchomieniu polecenia rails:

railsy generują model Tytuł książki: podsumowanie napisów: tekst 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

Czy ktoś wie, co może być przyczyną tych błędów?

user7374147
źródło

Odpowiedzi:

86

Te ostrzeżenia pojawiają się, ponieważ używasz Ruby 2.4.0.

Ta wersja wprowadziła tę zmianę: Unify Fixnum i Bignum w Integer

Zobacz ogłoszenie tutaj: https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/

Ostrzeżenia pochodzą z klejnotu aktywnego wsparcia, który jest częścią szyn i zostaną naprawione w nadchodzącej wersji.

Na razie możesz po prostu zignorować te ostrzeżenia.

Aktualizacja: Został wydany Rails 5.0.2 , który usuwa ostrzeżenia.

IngoAlbers
źródło
1
Używam, ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]ale też mam ten problem.
samolot
1
Jak zignorować ostrzeżenia? Uruchamianie „rails s” kończy się niepowodzeniem
Sauron,
@Sauron Nie powinno to zawieść z powodu ostrzeżeń. Może masz dodatkowo jakiś błąd?
IngoAlbers
19

Naprawiłem moje, aktualizując szyny

bundle update rails
mpalencia
źródło
1
To działało dla mnie do otwarcia nowego terminala: bundle update geocoderPonownie otrzymuję następujący błąd, tuż przed uruchomieniem konsoli railsów:/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

Zakładam, że używasz Rails 5? Sprawdź ten link (na dole). Wygląda na to, że te ostrzeżenia znikną wraz z wydaniem nr 27458.

jvillian
źródło
8

Jeśli te przestarzałe ostrzeżenia w aktywnym wsparciu są jedynymi ostrzeżeniami, które widzisz, możesz je wyłączyć, przekazując zmienną bash RUBYOPT z opcją -W0, która spowoduje wyciszenie.

więc zamiast rails server spróbować: RUBYOPT="-W0" rails serverlubRUBYOPT="-W0" bin/rails server

W railsach 5.0 możesz przyzwyczaić się do używania bin / rails nie tylko rails, ponieważ jest to wersja global rails, która może, ale nie musi, być taka sama, jak twoja lokalna wersja rails.

lsiebert
źródło
0

Naprawiłem ten therubyracerklejnot aktualizacji z wersji „0.12.2” do „0.12.3”

Anyelo Petit
źródło