将多个ActiveRecord模型声明/评估到主命名空间的正确方法是什么?

时间:2012-04-23 13:22:19

标签: ruby-on-rails activerecord metaprogramming

想象一下字符串数组["User","Article","Image"],在当前范围内评估类声明的最佳方法是什么?我想象的是:

array.each do |element|
  instance_eval<<EOF
    class #{element} < ActiveRecord::Base
    end
EOF
end

这是正确的做法吗?

2 个答案:

答案 0 :(得分:3)

怎么样

%w(User Article Image).each do |klass|
  create_class(klass, ActiveRecord::Base) do
    # ...whatever
  end
end

答案 1 :(得分:1)

这个怎么样?

array.each do |element|
  Object.const_set(element, Class.new(ActiveRecord::Base))
end