动态创建AR模型

时间:2011-11-09 16:28:46

标签: ruby ruby-on-rails-3 activerecord

我正在处理应用程序,其中相同的数据存储在不同的表中

示例

Items
Items201101
Items201102
Items201103
.....

每个月我都需要再创建一个表Items#{year}#{month}并从项目中复制数据,然后我就这样做了 ActiveRecord::Base.connection.execute("insert into ... select from ... ");

如何动态创建此类表格的模型? 另外如果我可以这样做,那么当删除这样的表时,如何从应用程序范围中删除这些模型?

1 个答案:

答案 0 :(得分:1)

如果模型非常相似,我建议使用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