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类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)