Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 需要模块上下文中的文件_Ruby - Fatal编程技术网

Ruby 需要模块上下文中的文件

Ruby 需要模块上下文中的文件,ruby,Ruby,我有一个名为WG的模块,应用程序中的所有类都在其中,纯粹是为了名称空间,所以我不会与外部代码发生命名冲突 我的问题是,我的应用程序中的每个类都需要指定为在该模块中,这是一个难题,主要是因为它给我的应用程序中的所有代码添加了一个缩进级别 换句话说,这是一个典型的类,在一个名为Thing.rb的文件中 module WG class Thing def do_things end end end 在我看来,应该有某种方式要求在WG模块的上下文中使用该文件,这样我就可以放弃顶

我有一个名为WG的模块,应用程序中的所有类都在其中,纯粹是为了名称空间,所以我不会与外部代码发生命名冲突

我的问题是,我的应用程序中的每个类都需要指定为在该模块中,这是一个难题,主要是因为它给我的应用程序中的所有代码添加了一个缩进级别

换句话说,这是一个典型的类,在一个名为Thing.rb的文件中

module WG
  class Thing
    def do_things
    end
  end
end
在我看来,应该有某种方式要求在WG模块的上下文中使用该文件,这样我就可以放弃顶部和结尾的行,以及强制性的一级缩进

谢谢

尝试使用::运算符:

class WG::Thing
  # ...
end
没有。请求文件只是按原样运行文件


load允许您在匿名模块的上下文中运行代码,但不允许在特定模块的上下文中运行代码。当然,您仍然可以使用::scope resolution操作符访问全局名称空间。

Hmm。。。这种方法是可行的,只是现在该类中对WG名称空间内其他常量的所有引用都需要以WG:::作为前缀。有什么办法吗?@MattParlane:嗯,我想不出来。我不明白这条线-这样我就可以放弃顶部和结尾的这条线,以及强制性的一级缩进。。你能澄清一下这句话吗?