Pobierz nazwę tabeli z ActiveRecord
użyłemActiveRecord::Base.set_table_name
ustawić moją nazwę tabeli w dynamicznie tworzonej klasie ActiveRecord. Teraz muszę wiedzieć, jak zdobyć tę wartość później. Dokumenty api nie wspominają o tym, jak to zrobić. Ponadto nie mogę wyprowadzić nazwy tabeli z nazwy klasy ActiveRecord, ponieważ są one wprowadzane inaczej niż nazwa tabeli.
Oto lepszy przykład tego, co robię
<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>
W tym przypadku, jeśliconst_name
= Testuj, a nazwa bazy danych to Baza danych powinna utworzyć klasę ActiveRecord :: Base :: DatabaseTest. Ale kiedy wywołam na nim nazwę table_name, otrzymuję niezdefiniowaną zmienną lokalną lub metodę. Czy muszę wywoływać nazwę klasy w klasie?
Aktualizacja: Zadzwoniłem, działającinstance.class.table_name