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


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

rails генерировать модель Название книги: строка резюме: текст 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

кто-нибудь знает, что может быть причиной этих ошибок?

4 72

4 ответа:

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

эта версия представила это изменение:объединить Fixnum и Bignum в целое число

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

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

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

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

я исправил мой, обновив rails

bundle update rails

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

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

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

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