IRB中ri的未定义方法

时间:2010-05-22 21:37:20

标签: ruby

在交互式ruby控制台内部,如果我输入ri然后我得到一个未定义的方法错误,我是否明确必须在某处安装文档才能使其工作?

irb(main):015:0* ri --help
NoMethodError: undefined method `-@' for nil:NilClass
    from (irb):15
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:295
irb(main):016:0> ri Array
NoMethodError: undefined method `ri' for main:Object
    from (irb):16
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:295

3 个答案:

答案 0 :(得分:4)

事实上,ORI gem可以将RI带到您的IRB控制台并提供更整洁的类探索功能。

Watch intro screencast

设置(~/.irbrc

require "rubygems"
require "ori"

在类

上请求RI
Array.ri
String.ri
[].ri
"".ri
5.ri

在方法

上请求RI
String.ri :upcase
"".ri :upcase
[].ri :sort
Hash.ri :[]

请求交互方法列表

String.ri //
"".ri //
"".ri /case/
"".ri /^to_/
User.ri /^validates_/

答案 1 :(得分:3)

你可能不想这样做。您应该做的是退出shell(或者最好是打开一个新的终端选项卡或屏幕会话)并从那里单独运行ri,这是一个程序。如果你真的,真的,想要做你正在做的事情,你总是可以使用反引号来运行ri --help或任何其他shell命令。

  

irb(主要):015:0 *`ri --help`

答案 2 :(得分:3)

只需--help

irb(main):040:0> --help

Enter the method name you want to look up.
You can use tab to autocomplete.
Enter a blank line to exit.

>> Array
←[0m←[1;32mArray < Object←[m

(from gem backports-1.18.2)
------------------------------------------

要返回IRB,我按了Crtl+C,但可能还有一些退出命令。