我在文件foo.rb
中有这样的结构:
module Foo
def self.bar
Bar.new
end
class Bar
...
end
end
我想提取Bar
类,并将其放在一个单独的文件中,理想情况下放在一个文件夹中。我正在努力将模块中的类提取到单独的文件中。很难理解模块和类之间的区别,以及它们应该驻留的位置。我在尝试中收到错误uninitialized constant
。
是否需要遵循一些命名惯例才能使其正常工作?
答案 0 :(得分:0)
在解释器级别,模块类似于类。遵循rails约定,你将有一个名为bar.rb的独立文件,并在模块foo的顶部需要它。
bar.rb:
class Bar
end
foo.rb:
require 'bar'
module Foo
def self.bar
Bar.new
end
end
如果要将条形文件放在不同的文件夹中,请参阅有关require_relative的信息,该信息允许您从相对于当前文件的路径中请求文件。