启动irb或script/console时,~/.irbrc文件未被执行。

10

以下是我的尝试:

1. gem install awesome_print
2. echo "require 'ap'" >> ~/.irbrc
3. chmod u+x ~/.irbrc
4. script/console
5. ap { :test => 'value' }

结果:

NameError: undefined local variable or method `ap' for #
6个回答

19

想要检查.irbrc文件中哪里出了问题,只需将.irbrc作为普通的Ruby脚本执行(ruby ~/.irbrc),Ruby会告诉你哪一行出错。它可能会抱怨缺少IRB模块,在脚本中加入require 'irb'即可(实际运行IRB时不需要这样做,仅在测试时需要)。


3
是的,这确实帮助我调试了我的情况并找到了解决方法。(只是让我困惑的是当加载一个 gem 缺失时 IRB 没有抱怨。) - Sam Figueroa

10

您的Rails控制台可能正在使用Pry

根据“~/.irbrc”可能无效的建议,我将我的文件减少到一个单一的“puts"hi"”,虽然当我运行“irb”时它输出了,但当我运行“rails console”时却没有任何输出。

最终我注意到提示是“pry(main)”。原来这个Rails项目配置了“pry-rails” gem,所以控制台使用它。自定义“.pryrc”即可解决问题。


8
将 "require 'rubygems'" 添加到我的 ~/.irbrc 文件似乎解决了问题。

7
在我的情况下,这句话是这样的:"如果您的~/.irbrc文件无效,它将会默默地失败。" - 来自Google搜索。我在~/.irbrc中找到并修复了错误,现在一切正常。

2
遇到了同样的问题。特别是,如果在顶部有任何require语句,并且由于捆绑程序环境而无法工作,则整个.irbrc将被悄无声息地忽略。解决方案:在可能出现故障的所有内容周围使用begin / rescue Exception / end块。 - Jo Liss

1

你需要像jdeseno所写的那样添加require 'rubygems'

如果你使用Rails3并且使用Bundler,你还需要在Gemfile中指定'awesome_print' gem(在:development组中)才能使它正常工作。


0
请检查应用程序是否使用Pry或Debug。对于前者,请编辑.pryrc;后者使用.irbrc。
您可以在存储库目录中编辑.pryrc。本地目录和$HOME将被扫描以寻找该点文件。

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