如何在ruby中修补继承的钩子?
发布时间:2020-12-17 02:38:48 所属栏目:百科 来源:网络整理
导读:只是一个简单的例子. class Base def self.inherited(child) p 'Base.inherited' endendclass User Base p 'User'end 这让我产生了 "Base.inherited""User" 这工作正常,但我如何修补Base类的继承钩子? 假设我想要我的结果 "Base.inherited""Something inher
只是一个简单的例子.
class Base def self.inherited(child) p 'Base.inherited' end end class User < Base p 'User' end 这让我产生了 "Base.inherited" "User" 这工作正常,但我如何修补Base类的继承钩子? 假设我想要我的结果 "Base.inherited" "Something inherited" "User" 并且仍然让我的User类继承Base. 任何想法,解决方法? 谢谢! 更新问题更具体. 我需要在类User继承Base而不修改User类时完全运行一些代码. 假设我有Base类,它定义了继承的方法.从一方面我不知道其他类将继承Base.另一方面,我无法修改Base类的原始继承方法. 那么如何修补该方法呢? 谢谢! 解决方法module Foo def self.included(child) p "Something inherited" end end class Base def self.inherited(child) p 'Base.inherited' end end class User < Base include Foo p 'User' end # >> "Base.inherited" # >> "Something inherited" # >> "User" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |