首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您正在使用json gem的旧版本或stdlib版本。

您正在使用json gem的旧版本或stdlib版本。
EN

Stack Overflow用户
提问于 2013-05-14 20:52:03
回答 4查看 4.6K关注 0票数 11

几天前,我在另一个帖子中看到了以下问题,以及其他问题,但这个问题的解决方案(对我来说)似乎没有得到解决。

我最近在我的Ruby 1.9.2-p290环境中运行了一个测试,当我运行一个测试脚本时,出现了以下错误:

代码语言:javascript
复制
You are using an old or stdlib version of json gem
Please upgrade to the recent version by adding this to your Gemfile:

gem 'json', '~> 1.7.7'

当我创建了一个全新的Ruby 1.9.3-p392环境,在Windows XP上运行时,这个问题仍然存在(不要问)。令我困惑的是,即使我安装了json 1.7.7或1.8.0 (gem列表粘贴在下面),我在运行测试时仍然收到此消息。这并没有真正影响我的测试结果,但每次看到这个警告都是相当烦人的。

我需要将此版本添加到哪个Gemfile中,它将位于何处?

代码语言:javascript
复制
gem list:
bigdecimal (1.1.0)
childprocess (0.3.9)
commonwatir (4.0.0)
ffi (1.8.1 x86-mingw32)
io-console (0.4.2, 0.3)
json (1.8.0, 1.7.7, 1.5.5)
mini_portile (0.5.0)
minitest (5.0.0, 2.5.1)
multi_json (1.7.3)
rake (10.1.0.beta.3, 10.0.4, 0.9.2.2)
rdoc (4.0.1, 3.9.5)
rubygems-update (2.0.3)
rubyzip (0.9.9)
selenium-webdriver (2.32.1)
watir-webdriver (0.6.4)
websocket (1.0.7)
win32-api (1.4.8 x86-mingw32)
win32-process (0.7.2)
windows-api (0.4.2)
windows-pr (1.2.2)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-16 09:21:34

这条消息来自multi_json gem,看起来可能是个bug。I suggest keeping an eye on this GitHub ticket.

如果消息太令人苦恼,您可以将multi_json降级到版本1.6.1以摆脱它。(至少这对我是有效的。)

更新:

在我看来,问题的根源在于,虽然multi_json希望将jsonjson_pure gem的使用限制在特定的版本中,但multi_json的作者并没有在他的代码中使用gem方法来激活这些版本。(听起来他似乎认为Bundler是指定gem版本的唯一方法;其实不然。)

由于multi_json会在尝试json之前先尝试ojyajl-ruby gem,因此使用其中一个可能是最好的变通方法。因此,您只需安装最新的multi_json,然后安装ojyajl-ruby

票数 10
EN

Stack Overflow用户

发布于 2013-05-15 05:38:04

试试这个:

代码语言:javascript
复制
gem update --system 
gem update
票数 5
EN

Stack Overflow用户

发布于 2013-05-17 14:01:11

转到Ruby安装路径,例如C:\Ruby192\lib\ruby\1.9.1\json

打开version.rb文件并更新版本详细信息,如下所示:VERSION = '1.7.7'

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16543693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档