warning: constant ::Fixnum is deprecated When generating new model

匿名 (未验证) 提交于 2019-12-03 02:14:01

问题:

I've tried to find some solution for this, but I really couldn't find anything related with the errors that is appearing to me when I run the rails command:

rails generate model Book title:string 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 

Anyone know what may be causing these errors?

回答1:

This warnings appear because you are using ruby 2.4.0.

This version introduced this change: Unify Fixnum and Bignum into Integer

See here for the announcement: https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/

The warnings come from the activesupport gem which is part of rails and will be fixed in an upcoming release.

For now you can just ignore those warnings.

Update: Rails 5.0.2 has been released, which gets rid of the warnings.



回答2:

I fixed mine by updating rails

bundle update rails 


回答3:

I assume you're using Rails 5? Check out this link (towards the bottom). Looks like these warnings will go away with release #27458.



回答4:

If these deprecation warnings in active support are the only warnings you are seeing, you can surpress them by passing a RUBYOPT bash variable with the -W0 option which will silence.

so instead of rails server try: RUBYOPT="-W0" rails server or RUBYOPT="-W0" bin/rails server

In rails 5.0 you may want to get in the habit of using bin/rails not just rails, since that's the global rails version which may or may not be the same as your local rails version.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!