Ruby on Rails宝石包含和初始化顺序,用于从另一个宝石重新打开在一个宝石中声明的模型

最初,我发布了Stack Overflow问题Ruby on Rails gems ...重新打开模型(现已删除)。但是我认为这个问题太令人困惑了...我将根据发现的问题提出不同的要求。 比方说... 宝石A有一个引擎(lib / a / engine.rb)并声明了一个模型M(基于ActiveRecord,\'app / models / m.rb \')。 在gem A中,有一个入口点(lib / a.rb),在rails加载gem时将对其进行解析。 在gem B中,有一个入口点(lib / b.rb),在rails加载gem时将对其进行解析。 宝石B取决于宝石A(在gemspec中指定),并且需要重新打开A :: M模型。 我已经检查了\'a.rb \'在\'b.rb \'之前是否已加载。 现在我的问题是,当我在\'b.rb \'中时,如果我尝试在M模型上执行class_eval(从gem A,记得吗?)以重新打开它并向其中添加\'B特定逻辑\'它,尚未定义M类...我已经将消息放在\'m.rb \'中,并且我发现它在\'a.rb \'和\'b.rb之后已经加载了很长时间\'已加载... 从gem B中,
ActiveRecord
加载模型A :: M后,如何获得回调?我需要在引擎上做些什么吗?换而言之,ActiveRecord在A中加载模型后会加载什么文件?     
已邀请:
为了以防万一,请确保同时将宝石A手动加载到宝石B中。     

要回复问题请先登录注册