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