如何将类移动到自己的文件中

时间:2018-01-10 21:40:49

标签: ruby

我在文件foo.rb中有这样的结构:

module Foo
  def self.bar
    Bar.new
  end

  class Bar
    ...
  end
end

我想提取Bar类,并将其放在一个单独的文件中,理想情况下放在一个文件夹中。我正在努力将模块中的类提取到单独的文件中。很难理解模块和类之间的区别,以及它们应该驻留的位置。我在尝试中收到错误uninitialized constant

是否需要遵循一些命名惯例才能使其正常工作?

1 个答案:

答案 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的信息,该信息允许您从相对于当前文件的路径中请求文件。