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


88

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

рельсы генерируют модель Название книги: краткое описание строки: текст isbn: строка

/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

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

Ответы:


86

Это предупреждение появляется, потому что вы используете 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 , избавляющий от предупреждений.


1
Я использую, ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]но также получаю эту проблему.
Самолет

1
Как игнорировать предупреждения? Запуск "рельсов" не удастся
Саурон

@Sauron Не должно выходить из строя из-за предупреждений. Может у вас еще какая-то ошибка?
IngoAlbers

19

Свою починил обновлением рельсов

bundle update rails

1
У меня это работало до тех пор, пока я не открыл новый терминал: bundle update geocoderСнова /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
Форрест Уилкинс,

9

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


8

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

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

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.