Ruby文件不会为我加载

时间:2014-11-02 00:15:56

标签: ruby ruby-on-rails-4 irb

我正在学习编码课,并在尝试与教师一起编写代码时遇到了问题。我正在尝试学习关于mixins和Enumerable模块的部分,并制作了这个文件,就像讲师一样,但它不适合我。我安装了Ruby,并且到目前为止已成功使用RVM来管理Ruby和Rails版本,所以我不明白为什么这对我不起作用。任何帮助都将非常感激。

以下是我在终端中收到的错误的屏幕截图:

enter image description here

enter image description here

这是我的示例代码:

     # Enumerable as a mixin

     class ToToList
       include 'Enumerable'

       attr_accessor :items, :finished_items

       def initialize
         @items = []
       end

       def each
         items.each {|item| yield item}
       end
     end

     # list = ToToList.new
     # list.items = ['laundry', 'dishes', 'vacuum']
     # list.items.select {|i| i.length > 6}

2 个答案:

答案 0 :(得分:1)

我发现了问题。显然,在较新版本的Ruby中(我目前正在使用Ruby v.2.1.2 p95),include语句中围绕Enumerable的单引号使其无法正常工作。在ruby-docs处使用手册后,我看到了此代码示例:include Enumerable并注意到它周围没有单引号。所以我删除了单引号,它现在工作正常。

答案 1 :(得分:0)

require将在to_do_list.rb上查找名为$LOAD_PATH的文件。如果您有一些git repo并且这是您项目的工作目录,那么很可能它不会出现在您的$LOAD_PATH上。通常$LOAD_PATH通常只有标准库。

您可以使用require将完整(绝对)路径传递给to_do_list.rb文件,或使用require_relative并将相对于当前位置的路径传递给所述文件(无论你从哪里调用irb