我正在开发一个报告和日志记录系统,它将充当其他应用程序统计信息的视口。我想要ActiveRecord的ORM功能,但手头没有应用程序的数据库结构。
额外的数据库在database.yml中定义,然后我与类连接。
class externalapp < ActiveRecord::Base
establish_connection :externalapp_db
end
def create_class(class_name, superclass, &block)
klass = Class.new superclass, &block
Object.const_set class_name, klass
end
我需要能够
我接近这个错误吗? 我如何才能更好地命名外部数据库,同时允许动态创建类。
建议和帮助表示赞赏。
答案 0 :(得分:1)
我过去曾尝试过这个:
constant_name = app.database_name.camelize + table_name.camelize
klass = Class.new(ActiveRecord::Base)
ActiveRecord::Base.const_set(constant_name, klass)
klass.class_eval do
set_table_name table_name
establish_connection(
:adapter => "mysql",
:host => app.database_host,
:username => app.database_username,
:password => app.database_password,
:database => app.database_name
)
end
这与你的方法非常类似。