有一段时间,我一直在一个Ruby模块中包含一个完整的类.显然这不是我应该做的.似乎模块的目的是存储函数,然后将这些函数作为方法包含在一个新类中.
我不要这个.我有一个类,我想保存在一个单独的文件中,我可以从其他文件中访问它.我该怎么做?
谢谢
有一段时间,我一直在一个Ruby模块中包含一个完整的类.显然这不是我应该做的.似乎模块的目的是存储函数,然后将这些函数作为方法包含在一个新类中.
我不要这个.我有一个类,我想保存在一个单独的文件中,我可以从其他文件中访问它.我该怎么做?
谢谢
模块作为函数的持有者和名称空间具有双重用途.将类保留在模块中是完全可以接受的.要将一个类放在一个单独的文件中,只需像往常一样定义该类,然后在希望使用该类的文件中,只需在顶部放置require 'name_of_file_with_class'
即可.例如,如果我在foo.rb
中定义了类Foo
,那么在bar.rb
中,我将得到第require 'foo'
行.
如果您使用的是Rails,这通常会自动发生
编辑:澄清文件布局
#file: foo.rb
class Foo
def initialize
puts "foo"
end
end
...
#file: bar.rb
require 'foo'
Foo.new
If you are in Rails, put these classes in lib/
and use the naming convention for the files of lowercase underscored version of the class name, e.g. Foo
-> foo.rb
, FooBar
-> foo_bar.rb
, etc.
从ruby 1.9版开始,您可以使用require_relative
来要求与您正在编辑的文件相对应的文件.