我正在为具有200多个模块的Rails应用程序开发ApplicationModel。该应用程序非常庞大,当我们rails s
它实际上需要40秒加载我们的应用程序。因此,在开发过程中,我们经常更换大量模块,并查看我们必须重新加载应用程序的更改。扩展ActiveRecord - send和extend之间有什么区别?
因此,我创建了一个ApplicationModel并将所有初始化器移入该模型,以便在开发中重新加载更改,并且不必每天都重新启动服务器,节省大量时间。
我使ApplicationModel继承自ActiveRecord::Base
,并将其设为抽象类。所有其他模型都从此模型继承。所以现在我们可以把我们的ActiveRecord扩展器放入这个模型中。
因为我正在开发一个其他人开始的项目,所以我不知道这两种扩展方法之间的区别ActiveRecord
并想知道它们之间的区别。
ActiveRecord::Base.send(:include, someModule)
ActiveRecord::Base.extend(ClassMethods)
+1,但你得到的第一部分是错误的。我们尝试重新加载初始化程序。他们在'config/initializers'中,所以'reload!'不会碰它们。但是现在使用一个应用程序模型'reload!'可以工作,或者只是在开发中的任何响应。 – s84
Gotcha - 这对我来说并不是很明显,因为你说“我正在为拥有200多个模型的Rails应用程序开发ApplicationModel。”谢谢澄清! –
(啊,我发现它已经在几分钟前被修正为“超过200个模块”。) –