2014-02-11 28 views
0

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

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的外壳,但是当我再尝试通过调用Search.ApartmentSearch.new(),我收到以下错误创建一个新的ApartmentSearch对象:NoMethodError: undefined method 'ApartmentSearch' for Search:Module,这是因为ApartmentSearch是一类,而不是一种方法,所以在某种程度上是明显的。我在这里做错了什么?我的目标是让课程保持模块化并在需要时进口。

+1

你想做的事:'搜寻:: ApartmentSearch.new()'和而不是'Search.ApartmentSearch.new()' – bjhaid

+0

啊,那很好。我没有发现当我搜索文档时,但我想我回想起使用类似网络的东西:HTTP.method –

+0

@bjhaid:您的评论应该是(接受的)答案 – Johnsyweb

回答

6

你想做的事:

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

ApartmentSearch是在Search命名为红宝石模块可用于命名空间