为什么会出现“undefined method `start_with?'”的错误?

4

I get:

undefined method 'start_with?' for "-f":String (NoMethodError)

在这一行:
if arg.start_with?("-v")

看起来在另一台机器上可以正常工作,所以我认为这可能是我的Ruby安装出了问题。有什么想法吗?


1
+1 自我诊断是 Ruby 安装问题,这点做得非常好。Stack Overflow 上有太多的问题来自于那些连这一步都无法完成的人。 - the Tin Man
你正在尝试解析命令行参数吗?使用optparse代替。 - tkroman
1个回答

8
"String#start_with?"是Ruby 1.8.7中引入的。显然,您正在使用早期版本,这不幸地很常见,但是1.8系列不久将被淘汰,所以您应该考虑升级。
我在1.8.6文档中找不到任何关于String#start_with?的参考资料,但它存在于1.8.7文档中。"

4
请尽快升级,1.8.x已不再受支持,也不再接收安全修复(1.8.5多年未更新)。建议升级至Ruby 1.9或更好的是2.0。 - Andrew Marshall
1
如何升级取决于您使用的操作系统。如果您使用的Ruby是预安装的,我建议不要更改它,并安装RVM或rbenv来管理沙盒中的新版本(如果您使用的是Linux或Mac OS)。这样,您可以安装多个Ruby并轻松切换它们。这是一个更好的选择。 - the Tin Man
我已经升级到1.9.3,毫不意外的是错误现在已经消失了。谢谢! - Michael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接