aviso: constant :: Fixnum está obsoleto ao gerar novo modelo

88

Tentei encontrar uma solução para isso, mas realmente não consegui encontrar nada relacionado com os erros que aparecem para mim quando executo o comando rails:

trilhos geram modelo Título do livro: resumo da string: texto 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

Alguém sabe o que pode estar causando esses erros?

user7374147
fonte

Respostas:

86

Esses avisos aparecem porque você está usando o Ruby 2.4.0.

Esta versão introduziu esta mudança: Unificar Fixnum e Bignum em Inteiro

Veja aqui o anúncio: https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/

Os avisos vêm da gem activesupport, que faz parte do rails e serão corrigidos em uma versão futura.

Por enquanto, você pode simplesmente ignorar esses avisos.

Atualização: Rails 5.0.2 foi lançado , o que elimina os avisos.

IngoAlbers
fonte
1
Eu uso, ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]mas também fico com esse problema.
aeronave de
1
Como faço para ignorar os avisos? A execução de "rails s" falha
Sauron
@Sauron Não deve falhar por causa de avisos. Talvez você tenha algum erro adicionalmente?
IngoAlbers
19

Consertei o meu atualizando os trilhos

bundle update rails
mpalencia
fonte
1
Isso funcionou para mim até abrir um novo terminal: bundle update geocoderRecebendo o seguinte erro novamente, logo antes do início do console 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

Presumo que você esteja usando Rails 5? Confira este link (na parte inferior). Parece que esses avisos desaparecerão com a versão nº 27458.

Jvillian
fonte
8

Se esses avisos de depreciação no suporte ativo forem os únicos avisos que você está vendo, você pode suprimi-los passando uma variável bash RUBYOPT com a opção -W0 que silenciará.

então, em vez de rails server tentar: RUBYOPT="-W0" rails serverouRUBYOPT="-W0" bin/rails server

No rails 5.0 você pode querer adquirir o hábito de usar bin / rails não apenas rails, já que essa é a versão global do rails que pode ou não ser a mesma que sua versão local do rails.

lsiebert
fonte