Динамическое создание AR-моделей - PullRequest
0 голосов
/ 09 ноября 2011

Я работаю с приложением, в котором идентичные данные хранятся в разных таблицах

Пример

Items
Items201101
Items201102
Items201103
.....

Каждый месяц мне нужно создавать еще 1 таблицу Items#{year}#{month} и копировать в нее данные изЭлементы, и я делаю это с ActiveRecord::Base.connection.execute("insert into ... select from ... ");

Как я могу динамически создавать модели для таких таблиц?Кроме того, если я могу это сделать, как я могу удалить такие модели из области применения, когда такая таблица отбрасывается?

1 Ответ

1 голос
/ 10 ноября 2011

Если модели действительно похожи, я бы предложил использовать eval.Рассмотрим этот код:

['Bar', 'Baz'].each do |k|
  eval %{
    class Foo#{k}
      def initialize
        puts 'hello from ' + self.class.name
      end
    end
  }
end

FooBar.new
FooBaz.new
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...