2015-10-14 67 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。