我正在使用远程数据库(SQL Server 2008),并且有一个动态类定义,我指向一个特定的表名,如下所示:
self.table_name
但是当我尝试访问动态生成的类中定义的任何方法时,Rails返回表不存在。
如果我使用foos
记录表名,我会获得类名的常规复数版本(例如Foo
用于类名foo_bars
,或FooBar
用于{ {1}})而不是我用self.table_name
设置的val。
答案 0 :(得分:1)
原来是我定义动态类的方式。方法应该在Object.const_set(...)
调用中的lambda中定义:
Object.const_set('Foo', Class.new(MyRemoteDB){
...
self.table_name = ENV['TABLE_NAME']
...
})