Tag: 扩展

如何在模块中对类方法进行别名?

我正在使用Ruby v1.9.2和Ruby on Rails v3.2.2 gem。 我有以下模块 module MyModule extend ActiveSupport::Concern included do def self.my_method(arg1, arg2) … end end end 我想为类方法 my_method添加别名。 所以,我说了以下( 不工作 )代码: module MyModule extend ActiveSupport::Concern included do def self.my_method(arg1, arg2) … end # Note: the following code doesn’t work (it raises “NameError: undefined # local variable or method `new_name’ for #”). […]

如何让ruby与一个类共享数据,并将其子类与extend结合使用

module M def f=(x) @f= x end def f @f end end class A extend M end class B < A end Af= 42 puts Af puts Bf 这会产生 42 nil @fa类变量是否为A和B? 如何仅通过将其写入M来共享A和B之间的变量?