2016-09-13 5 views
0

私はリモートデータベース(SQL Server 2008)で作業しており、動的なクラス定義を持っているので、特定のテーブル名を指しています。動的に定義されたクラスのテーブル名を設定する - Rails 4

Object.const_set('Foo', Class.new(MyRemoteDB)) do 
    self.table_name = ENV['TABLE_NAME'] 
    def self.go_wild 
     ... 
    end 
    end 

動的に生成されるクラスで定義されたメソッドにアクセスしようとすると、Railsはを返します。テーブルは存在しません

Iはself.table_nameとテーブル名をログに記録した場合、私の代わりに、私はself.table_nameで設定ヴァルのクラス名(クラス名Foo、またはFooBarためfoo_barsため例えばfoos)の従来の複数のバージョンを取得します。

答えて

0

私は動的クラスを定義している方法に変わりはありません。メソッドは、Object.const_set(...)コール内のラムダで定義する必要があります。

関連する問題