Warning: constant:: Fixnum устарел При создании новой модели

Я попытался найти какое-то решение для этого, но я действительно не мог найти ничего связанного с ошибками, которые появляются у меня, когда я запускаю команду rails:

rails generate model Название книги: строка 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

Кто-нибудь знает, что может вызвать эти ошибки?

Ответ 1

Эти предупреждения появляются, потому что вы используете ruby ​​2.4.0.

В этой версии было внесено это изменение: Унифицировать Fixnum и Bignum в Integer

См. здесь для объявления: https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/

Предупреждения исходят от драгоценного камня activesupport, который является частью рельсов и будет исправлен в предстоящем выпуске.

Теперь вы можете просто игнорировать эти предупреждения.

Обновление: выпущен Rails 5.0.2, который избавляется от предупреждений.

Ответ 2

Я исправил шахту, обновив рельсы

bundle update rails

Ответ 3

Я предполагаю, что вы используете Rails 5? Проверьте эту ссылку (внизу). Похоже, что эти предупреждения уйдут с релизом № 27458.

Ответ 4

Если эти предупреждения об отказе в активной поддержке являются единственными предупреждениями, которые вы видите, вы можете их отказать, передав переменную RUBYOPT bash с параметром -W0, который будет отключен.

поэтому вместо rails server попробуйте: RUBYOPT="-W0" rails server или RUBYOPT="-W0" bin/rails server

В рельсах 5.0 вы можете привыкнуть использовать bin/rails не только рельсы, так как это глобальная версия рельсов, которая может быть или не быть такой же, как ваша локальная версия rails.