Ruby on rails 如何在类中包含模块
my gem中的一个模块包含在另一个gem中的一个类中,该类由Rails应用程序中的自定义类扩展:Ruby on rails 如何在类中包含模块,ruby-on-rails,ruby,rubygems,include,autoload,Ruby On Rails,Ruby,Rubygems,Include,Autoload,my gem中的一个模块包含在另一个gem中的一个类中,该类由Rails应用程序中的自定义类扩展: class ClassInRailsApp < AnotherGem end 我的宝贝: module MyGem def my_method end end AnotherGem.send :include, MyGem 另一个宝石: class AnotherGem end Rails应用程序中的类: class ClassInRailsApp < Anoth
class ClassInRailsApp < AnotherGem
end
我的宝贝:
module MyGem
def my_method
end
end
AnotherGem.send :include, MyGem
另一个宝石:
class AnotherGem
end
Rails应用程序中的类:
class ClassInRailsApp < AnotherGem
end
在扩展类之前,如何确保包含我的模块
编辑:
我试图在
ClassInRailsApp
中直接包含MyGem
,但指定的实例方法仍然不可用。这个问题可能与此有关吗?在您的思维中,您只是在调用一个方法,例如@object.my_方法。实际上,您正在调用类级方法,例如Object.my_方法,但将其定义为实例级方法。正确的方法是Object.new.my_方法,但是,不要这样做
要调用这样的方法,必须将其定义为类上的方法。请参阅,以便更好地理解。特别是关于如何通过模块定义类级方法的“常用习惯用法”一节 在您的思维中,您只是在调用一个方法,例如@object.my_方法。实际上,您正在调用类级方法,例如Object.my_方法,但将其定义为实例级方法。正确的方法是Object.new.my_方法,但是,不要这样做
要调用这样的方法,必须将其定义为类上的方法。请参阅,以便更好地理解。特别是关于如何通过模块定义类级方法的“常用习惯用法”一节 这里的示例代码实际上生成了
true
,因此我不确定您的问题到底是什么。这应该行得通,对我也行。您的示例代码实际上生成了true
,所以我不确定您的问题到底是什么。这应该行得通,对我也行。