gpt4 book ai didi

ruby-on-rails - 在 Rails 中创建运行时类。我该如何处理?

转载 作者:数据小太阳 更新时间:2023-10-29 08:10:39 25 4
gpt4 key购买 nike

我正在开发一个报告和日志记录系统,该系统将充当其他应用程序统计信息的视口(viewport)。我想要 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

我需要能够

  1. 动态创建类(从表中)
  2. 将它们映射到外部数据库的表

我是不是处理错了?我怎样才能更好地为外部数据库命名空间,同时允许动态类创建。

感谢建议和帮助。

最佳答案

我过去曾尝试过这个:

  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

与您的方法非常相似。

关于ruby-on-rails - 在 Rails 中创建运行时类。我该如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4655672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com