Ruft den Tabellennamen von ActiveRecord ab

ich benutzteActiveRecord::Base.set_table_name um meinen Tabellennamen für eine dynamisch erstellte ActiveRecord-Klasse festzulegen. Jetzt muss ich wissen, wie ich diesen Wert später erhalten kann. In den API-Dokumenten wird nichts dazu erwähnt. Außerdem kann ich den Tabellennamen nicht vom ActiveRecord-Klassennamen ableiten, da sie anders als der Tabellenname codiert sind.

Hier ist ein besseres Beispiel dafür, was ich tue

<code>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
</code>

In diesem Fall, wenn dieconst_name = Test und der Datenbankname ist Database. Es sollte eine Klasse von ActiveRecord :: Base :: DatabaseTest erstellt werden. Wenn ich aber table_name aufrufe, bekomme ich eine undefinierte lokale Variable oder Methode. Muss ich table_name für die Klasse aufrufen?

Aktualisieren: Ich habe es geschafft, indem ich angerufen habeinstance.class.table_name

Antworten auf die Frage(4)

Ihre Antwort auf die Frage