ruby-on-rails – 动态加载STI类

ruby-on-rails – 动态加载STI类,第1张

概述场景:我的Rails 3.2应用程序中有许多STI模型.有时,我使用父类来查询子类的数据库,如下所示: class ParentObject < ActiveRecord::Baseendclass ChildObject < ParentObjectendclass User < ActiveRecord::Base has_many :parent_objectsend> @H_419_6@ 场景:我的Rails 3.2应用程序中有许多STI模型.有时,我使用父类来查询子类的数据库,如下所示:

class ParentObject < ActiveRecord::Baseendclass Childobject < ParentObjectendclass User < ActiveRecord::Base  has_many :parent_objectsend> User.find(1).parent_objects => [#<ParentObject ...>,#<Childobject ...>]

如果我检查生成的SQL查询,那就是我(预期)看到的:

WHERE "parent_objects"."type" IN ('ParentObject','Childobject')

问题:在开发环境中,类会在发生更改时动态重新加载.如果我在ParentObject上更改某些内容并且不重新启动Rails控制台,那就是我得到的内容:

> User.find(1).parent_classes => [#<ParentObject ...>]

检查生成的sql:

WHERE "parent_objects"."type" IN ('ParentObject')

但:

> Childobject => Childobject(...)> User.find(1).parent_objects => [#<ParentObject ...>,#<Childobject ...>]

问题:在我的Rails应用程序中,我可以编写一小段代码,在每个Web服务器请求中重新加载任何STI模型吗?

解决方法 我找到了解决方案……:

# in development.rbActiondispatch::Reloader.to_prepare do  Rails.application.eager_load!end
总结

以上是内存溢出为你收集整理的ruby-on-rails – 动态加载STI类全部内容,希望文章能够帮你解决ruby-on-rails – 动态加载STI类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1274694.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存