Я использовал ActiveRecord::Base.set_table_name
для установки имени моей таблицы в динамически созданный класс ActiveRecord. Теперь мне нужно знать, как получить это значение позже. В api docs ничего не говорится о том, как это сделать. Кроме того, я не могу вывести имя таблицы из имени класса ActiveRecord, потому что они введены иначе, чем имя таблицы.
Вот лучший пример того, что я делаю
table_klass = Class.new(ActiveRecord::Base)
ActiveRecord::Base.const_set(const_name,table_klass)
app = @app
table_klass.class_eval do
after_save do
@@channel.push self
end
set_table_name t.server_table
establish_connection(
:adapter => "mysql2",
:host => app.db_host,
:username => app.db_user,
:password => app.db_pass,
:database => app.db_name
)
end
В этом случае, если тегом const_name
= Test и именем базы данных является База данных, он должен создать класс ActiveRecord:: Base:: DatabaseTest, который он делает. Но когда я вызываю table_name, я получаю локальную переменную или метод undefined. Мне нужно вызвать table_name в классе?
Update:
Я получил его работу, позвонив instance.class.table_name