从irb导入(要求)Ruby类

时间:2014-02-11 23:52:45

标签: ruby irb

在Python中,将类,方法,变量等导入python shell是由import MyClass完成的。我是在Ruby shell中做同样的事情。我有以下代码:

module Search
   class ApartmentSearch
       attr_accessor :hood, :minPrice,
                     :maxPrice, :bed,
                     :bath

       def initialize(hood = "",
                   minPrice = 0,
                   maxPrice = 0,
                   bed = 0,
                   bath = 0)
           @hood = hood
           @minPrice = minPrice
           @maxPrice = maxPrice
           @bed = bed
           @bath = bath
      end
   end
end

我可以通过require '/path/to/module/search将模块导入Ruby shell,但是当我尝试通过调用ApartmentSearch创建新的Search.ApartmentSearch.new()对象时,我收到以下错误:{{ 1}},这在某种程度上是显而易见的,因为NoMethodError: undefined method 'ApartmentSearch' for Search:Module是一个类,而不是一个方法。我在这做错了什么?我的目标是让课程保持模块化并在需要时导入。

1 个答案:

答案 0 :(得分:6)

你想做的事:

Search::ApartmentSearch.new() and not Search.ApartmentSearch.new()

ApartmentSearch位于Search命名空间中,因为ruby中的模块可用于命名空间