我在“models / Foo /”文件夹中有一个类Bar:
class Foo::Bar
所以Bar在模块Foo中。
但是如果我创建一个文件来定义模块Foo:
module Foo
def baz
end
end
如果我尝试,方法baz是未定义的:
Foo::Bar.new.baz
为什么呢?这个怎么运作?我怎么做?
答案 0 :(得分:0)
关键是,Rails并不需要项目中的所有文件。是的,这是真的 - 你可以在Ruby中重新打开模块,但你仍然需要以某种方式加载它。
你还犯了另一个错误。即使您在模块内部定义了一个类,该类也不会拥有模块的方法。为了向课程添加模块的功能,您需要包含或扩展类与该模块。
以下是您会发现有用的几个链接:
希望它有所帮助!