在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
是一个类,而不是一个方法。我在这做错了什么?我的目标是让课程保持模块化并在需要时导入。
答案 0 :(得分:6)
你想做的事:
Search::ApartmentSearch.new() and not Search.ApartmentSearch.new()
ApartmentSearch
位于Search
命名空间中,因为ruby中的模块可用于命名空间