Я использую следующие действия Rails 3 модели динамически создавать модели:Есть ли безопасное место для хранения динамически созданных моделей Rails?
# 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
Debugging показывает, однако, что @@children
сбрасывается при каждой загрузке страницы, что делает каждую загрузку страницы очень, очень медленно. Как я могу это предотвратить? И что вызывает это? Если я не помню детей, Rails переходит в бесконечный цикл, что заставляет меня поверить, что он перезагружает по крайней мере некоторые классы всякий раз, когда я создаю новую модель или что-то в этом роде. Как предотвратить такое поведение?
Но почему это перезагружается на каждая загрузка страницы? Что-то в 'ActiveRecord :: Base' запускает это поведение? –
Если вы используете