在rails中动态创建表的模型

时间:2011-01-12 20:16:17

标签: ruby-on-rails

我有一个迁移,可以在每个日期动态创建表格。像这样:

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 Generate Model from Existing Table?,但在另一个问题中,有人解释了为什么我不应该尝试让一个模型适合许多表格。

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

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