指定用于创建类对象Ruby的文件夹



我有一个小问题(也许根本不是问题)

我正在用Ruby制作一个应用程序,文件夹/文件结构如下:

OrderSet/
..item.rb
..file.rb
..order_object.rb
OrderGet/
..item.rb
..files.rb
..order.rb

正如你所看到的,我有两个item.rb文件,它们在类结构上都不同。现在我需要创建一个OrderSet/item.rb对象,我如何指定它需要在OrderSet中查找,而不获取OrderGet对象?

我必须明确,所有文件都是主rb文件中必需的。

我尝试过执行OrderSet.Item(该类在Item.rb中被称为Item),但它抱怨未初始化的常量OrderSet

提前感谢!

[编辑]我也尝试过用它制作模块,也许我没有正确理解这个概念,但我已经用OrderSet.Item.new(OrderSet作为模块名称)

尝试过了

您可以使用一个模块来创建一个命名空间,这样每个类集都会被封装到它们所做的事情(示例中的文件夹名称)。因此,OrderSet中的类将被封装在一个模块中,例如OrderSet/item.rb将变成:

module OrderSet
  class Item
    # methods and properties
  end
end

然后你可以像一样使用它

new_order_set = OrderSet::Item.new

RubyMonk有一个名为Modules As Namespaces的课程,其中有更多的细节和示例,您可以在浏览器中运行。

最新更新