Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否有一个安全点来存储动态创建的Rails模型?_Ruby On Rails - Fatal编程技术网

Ruby on rails 是否有一个安全点来存储动态创建的Rails模型?

Ruby on rails 是否有一个安全点来存储动态创建的Rails模型?,ruby-on-rails,Ruby On Rails,我使用以下Rails 3模型动态创建模型: # encoding: UTF-8 require_dependency 'read_only' require_dependency 'readings_methods' class Reading < ActiveRecord::Base self.abstract_class = true include ReadOnly include ReadingsMethods @@mutex = Mutex.new @

我使用以下Rails 3模型动态创建模型:

# encoding: UTF-8

require_dependency 'read_only'
require_dependency 'readings_methods'

class Reading < ActiveRecord::Base
  self.abstract_class = true

  include ReadOnly
  include ReadingsMethods

  @@mutex = Mutex.new
  @@children = {}

  def self.with_table(t)
    @@mutex.synchronize do
      child = @@children[t]
      if child.nil?
        child = Class.new(self) do
          self.table_name = t
        end
        @@children[t] = child
      end

      child
    end
  end
end
编码:UTF-8 需要依赖项“只读” 需要_依赖项“读数_方法” 类读取
然而,调试显示,
@@children
在每次页面加载时都会重置,从而使每个页面加载非常非常缓慢。我如何防止这种情况?是什么原因造成的?除非我记忆孩子们,否则Rails将进入无限循环,这让我相信每当我创建新模型或类似的东西时,它至少会重新加载一些类。如何防止这种行为?

Rails在开发模式下为您重新加载代码,这样您就不必每次进行更改时都重新启动Rails服务器(在Rails 3.2中,它只尝试重新加载已更改的代码)

当一个类被重新加载时,rails将取消设置该常量并加载一个新的副本,因此新的类将有一组新的类变量


ActiveSupport::Dependencies。自动加载一次路径
ActiveSupport::Dependencies。自动加载路径
控制以这种方式重新加载的内容。您应该能够将文件的(完整)路径添加到“自动加载一次”路径,以防止重新加载该文件(但随后必须重新启动rails,以便查看对其所做的任何更改)

但为什么每次加载页面时都会重新加载该文件?
ActiveRecord::Base
中有什么东西触发了这种行为吗?如果您使用的是