警告:不推荐使用常量 ::Fixnum 生成新模型时
Posted
技术标签:
【中文标题】警告:不推荐使用常量 ::Fixnum 生成新模型时【英文标题】:warning: constant ::Fixnum is deprecated When generating new model 【发布时间】:2017-05-18 18:06:43 【问题描述】:我试图为此找到一些解决方案,但是当我运行 rails 命令时,我真的找不到与出现的错误相关的任何内容:
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
有人知道是什么原因导致了这些错误吗?
【问题讨论】:
【参考方案1】:出现此警告是因为您使用的是 ruby 2.4.0。
此版本引入了此更改:Unify Fixnum and Bignum into Integer
请看这里的公告:https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/
警告来自 activesupport gem,它是 rails 的一部分,将在即将发布的版本中修复。
现在您可以忽略这些警告。
更新: Rails 5.0.2 has been released,它消除了警告。
【讨论】:
我使用ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]
,但也遇到了这个问题。
如何忽略警告?运行“rails s”失败
@Sauron 它不应该因为警告而失败。也许你还有一些错误?【参考方案2】:
我通过更新rails修复了我的
bundle update rails
【讨论】:
这对我有用,直到打开一个新终端:bundle update geocoder
在 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
【参考方案3】:
我假设您使用的是 Rails 5?查看this link(朝向底部)。看起来这些警告将随着版本 #27458 消失。
【讨论】:
【参考方案4】:如果主动支持中的这些弃用警告是您看到的唯一警告,您可以通过传递带有 -W0 选项的 RUBYOPT bash 变量来抑制它们,该选项将静音。
所以而不是rails server
试试:RUBYOPT="-W0" rails server
或 RUBYOPT="-W0" bin/rails server
在 rails 5.0 中,您可能希望养成使用 bin/rails 的习惯,而不仅仅是使用 rails,因为这是全局 rails 版本,可能与您的本地 rails 版本相同,也可能不同。
【讨论】:
【参考方案5】:我修复了此更新 therubyracer
gem 从版本 '0.12.2' 到 '0.12.3'
【讨论】:
以上是关于警告:不推荐使用常量 ::Fixnum 生成新模型时的主要内容,如果未能解决你的问题,请参考以下文章
如何摆脱 GCC 中“从字符串常量到‘char*’的不推荐转换”警告?
请帮助:[警告]不推荐将字符串常量转换为 'char*' [-Wwrite-strings]
使用 Postgres 安装最新版本的 Rails 4 - 不推荐使用 PGconn、PGresult 和 PGError 常量