2015-10-14 78 views
2

我是Rails的新手。我做了一些事情,並出現此警告:如何修復Rails中的警告

warning: parser/current is loading parser/ruby22, which recognizes 
warning: 2.2.3-compliant syntax, but you are running 2.2.1. 
warning:please see https://github.com/whitequark/parser#compatibility-with-ruby-mri. 

任何人都可以幫我解釋它爲什麼會出現以及如何解決它? 非常感謝!

+2

您正在運行的是舊版本的ruby。嘗試更新到[ruby-2.2.3](https://www.ruby-lang.org/en/downloads/)。您可以使用[RVM](https://rvm.io/)來有效管理ruby版本。 –

+0

謝謝。當我更新到ruby 2.2.3時,我無法安裝'bundle install'。它解決了我的問題,但我認爲如果我這樣做,我需要再次安裝。 –

+1

升級'ruby'後需要運行'gem install bundler'。 –

回答

1

我得到這個錯誤,因爲我的項目需要解析器的rubocop寶石。我通過將我的解析器gem鎖定到我們使用的當前ruby版本來修復它。

對於我們來說,我們使用的是ruby 2.2.2,所以我在測試組中添加了gem 'parser', '~> 2.2.2.5'

由於rubocop 0.24,他使用瞭解析器v2.2.x,這意味着我們需要使用ruby> = 2.2.2來避免該警告。雖然寶石只需要1.9.3的ruby,所以你仍然可以使用它,但你會得到警告。

1

我看到這不僅爲rubocop而且也爲rspec等等。通過使用bundler更新解析器gem來修復它。沒有真正指定寶石版本。只是最新的一個。

0

如果您使用的是RuboCop,您可能需要在Gemfile中的gem 'rubocop'聲明之後添加require: false,以便您在使用RuboCop時只加載RuboCop。