Ruby on rails 3 设计::模型包含

Ruby on rails 3 设计::模型包含,ruby-on-rails-3,devise,Ruby On Rails 3,Devise,我试图更深入地理解Rails引擎机制,观察Desive项目的来源 您知道,有一个模块designe::Models,它为支持身份验证和其他功能的模型定义了一个名为designe的方法。到目前为止一切都很好 看 但我很难弄清楚这个模块是如何包含在模型中的。是自动上膛还是怎么的?当我在不使用生成器的情况下创建一个新模型时,Deave是如何使Deave::Models模块可访问的,这样我就可以直接调用Deave:trackable,:stuffible 那对我来说太黑暗了。如有任何解释,将不胜感激 谢

我试图更深入地理解Rails引擎机制,观察Desive项目的来源

您知道,有一个模块
designe::Models
,它为支持身份验证和其他功能的模型定义了一个名为
designe
的方法。到目前为止一切都很好

但我很难弄清楚这个模块是如何包含在模型中的。是自动上膛还是怎么的?当我在不使用生成器的情况下创建一个新模型时,Deave是如何使Deave::Models模块可访问的,这样我就可以直接调用
Deave:trackable,:stuffible

那对我来说太黑暗了。如有任何解释,将不胜感激


谢谢你的阅读。

伙计,我觉得自己很愚蠢。我花了这么多时间来找出为什么我所有的模型中都包含
designe::Models
模块,并且我可以调用
designe
方法而不会产生NoMethod错误

最后我找到了答案

此模块包含在Desive安装使用的orm文件中。如果你没有改变的话,你可以在你的初始值设定项中做这些事情。(选择正确的Orm适配器文件)

然后,问题中包含的文件(在我的例子中是
mongoid.yml
)只执行以下操作:

require 'orm_adapter/adapters/mongoid'

Mongoid::Document::ClassMethods.send :include, Devise::Models
如果你愿意为你的引擎提供同样的机制,希望这会给你带来启发


关于

为了提供更详细的信息,我正在尝试制作一个引擎,我想制作一个类似Deave的
Deave:trackable,:memberable的方法,该方法可用于我的主项目模型