Динамическое создание моделей для стола в рельсах - PullRequest
3 голосов
/ 12 января 2011

У меня есть миграция, которая будет динамически создавать таблицы на лету за дату. Примерно так:

class CreateCollectorPeriodTable < ActiveRecord::Migration

  def self.create_with(name)  
    create_table name.to_sym do |t|
      t.string :text, :limit => 1024
    end
  end 
end

Я хочу создать модель, которая получит доступ к этой миграции.

Я прочитал это: Rails генерирует модель из существующей таблицы? , но в другом вопросе кто-то объяснил, почему я не должен пытаться сделать одну модель подходящей для многих таблиц ..

Есть предложения?

1 Ответ

4 голосов
/ 12 января 2011
class CreateCollectorPeriodTable < ActiveRecord::Migration
  # name should be plural
  # i.e.: name = 'chickens'
  def self.create_with(name)  
    create_table name.to_sym do |t|
      t.string :text, :limit => 1024
    end
    model_file = File.join("app", "models", name.singularize+".rb")
    model_name = name.singularize.capitalize
    File.open(model_file, "w+") do |f|
      f << "class #{model_name} < ActiveRecord::Base\nend"
    end
  end 
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...