2017-01-04 67 views
63

我試圖找到一些解決方案,但我真的找不到與我在運行rails命令時出現的錯誤相關的任何內容:警告:常量:: Fixnum已棄用當生成新的模型

軌生成模型書名:字符串摘要:文本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 

任何人都知道可能會導致這些錯誤?

回答

60

由於您使用的是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這是軌道的一部分,將被固定在即將推出的版本。

現在,您可以忽略這些警告。

更新:Rails 5.0.2 has been released,它擺脫了警告。

+1

我用固定雷'紅寶石2.3.3p222(2016年11月21日修訂56859)x86_64的-darwin16]'而且還可以獲得這個問題。 – aircraft

+0

如何忽略警告?運行「rails s」失敗 – Sauron

+0

@Sauron它不應該因爲警告而失敗。也許你還有一些錯誤? – IngoAlbers

8

我假設你使用的是Rails 5?檢查出this link(朝底部)。看起來這些警告將消失#27458。

5

如果主動支持中的這些棄用警告是您所看到的唯一警告,那麼您可以通過傳遞帶有-W0選項的RUBYOPT bash變量來抑制這些警告,該選項將靜默。

所以不是rails server 嘗試:RUBYOPT="-W0" rails serverRUBYOPT="-W0" bin/rails server

在Rails 5.0,你可能想使用斌/導軌不只是導軌的習慣得到的,因爲這是全球軌道版本,這可能會或可能不會與您的本地導軌版本相同。

11

我通過更新軌道

bundle update rails 
+1

謝謝,我可以修復它 –

+0

這工作對我來說,直到打開一個新的終端:'' 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' –