【发布时间】:2017-08-07 01:50:12
【问题描述】:
我正在尝试动态创建一个类并将几个数据库连接之一分配给每个类。
我正在使用随时间变化的两个或三个数据库之间的任何地方,因此,我不愿将每个连接字符串存储在一个单独的类中并从它继承而不是 ActiveRecord::Base。
以下会引发错误“RuntimeError: Anonymous class is not allowed.”,但我不确定如何解决它或是否有更好的替代方案。
class ClassFactory
def self.create_class(new_class, table, db_connection)
c = Class.new(ActiveRecord::Base) do
db = db_connection
self.table_name = table
establish_connection(:adapter => db.database_type, :host => db.host, :database => db.database, :username => db.username, :password => db.password).connection
end
Module.const_set new_class, c
end
end
【问题讨论】:
标签: ruby-on-rails ruby class activerecord metaprogramming