以下是一些解释:
http://ruby-doc.org/french/ga/president
模块是一套方法和固定单元。 模块中的方法可以是实例方法或模块方法。 实例方法在列入模块时作为类别的方法出现,模块方法没有。 反之,可使用模块方法而不必形成一个概括性物体,而实例方法则不得使用。 (见模块#module_Function.)
<代码>本身.methodname within a model establishs a model methods.
在此情况下,您援引了M:helper
。 页: 1 当你从C++制定者的角度看待这一问题时。 在这种情况下,接收器是模块标的(一种碎片构件)。
探讨这一问题的其他途径是了解接收人的概念,每一种方法都包含接收人和方法名称(+选择性的寄生虫和编码组)。 接收器可以是<条码>。 类别物体:或用户定义类别的例子。
只有在单元(或班级)物体上才能使用单元(或班级)方法。 你可以援引任何方法(摩迪勒/地图/内容)。
如果你想采用模块中界定的某种审查方法,那么你就必须通过<条码>(包括条码>)给它一个接收人,该模块在某些类别中设置,并形成一个实例。
因此,另一种解决办法是:
module MM
def helper(param)
puts "hello #{param}"
end
class ReceiverClass
include MM # add helper() to ReceiverClass
end
class C < Struct.new(:param)
def work
ReceiverClass.new.helper(param)
end
end
end
c = MM::C.new("world")
c.work