irb无法识别方法

时间:2011-12-17 18:24:13

标签: ruby gem

这很奇怪,可能是因为我是红宝石的新手。我已经创建了一个gem,它可以工作,所有的单元测试工作,但是当我在irb中执行以下操作时,它无法找到“成分”方法;

1.9.2-p290 :002 > require "tablecloth"
 => true 
1.9.2-p290 :003 > tc = TableCloth.new "1 cup of sugar"
 => #<TableCloth:0x864a728> 
1.9.2-p290 :004 > tc.ingredients
NoMethodError: undefined method `ingredients' for #<TableCloth:0x864a728>
from (irb):4
from /home/mikey/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
1.9.2-p290 :005 > 

整个宝石都在这里;

https://github.com/mikeyhogarth/tablecloth

显然这是因为我对红宝石不熟悉。它实际上并不妨碍开发,我只是想知道为什么在这种情况下irb似乎无法注册该方法!

1 个答案:

答案 0 :(得分:2)

我认为您在IRB中加载的宝石版本与您在单元测试中的版本不同。您的单元测试可能会测试位于开发目录中的gem代码,但是当您在IRB中执行require "tablecloth"时,它会将已安装的gem加载到系统的gem目录中。如果您使用的是RVM,则可以查看$ GEM_HOME环境变量以查看该目录。

你可能需要运行一个像rake install这样的rake任务来安装你的gem,然后才能在irb中使用它。