Ruby on rails 在动态定义的类中设置表名-Rails 4
我使用的是一个远程数据库(SQL Server 2008),有一个动态类定义,其中我指向一个特定的表名,如下所示:Ruby on rails 在动态定义的类中设置表名-Rails 4,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我使用的是一个远程数据库(SQL Server 2008),有一个动态类定义,其中我指向一个特定的表名,如下所示: Object.const_set('Foo', Class.new(MyRemoteDB)) do self.table_name = ENV['TABLE_NAME'] def self.go_wild ... end end 但当我尝试访问在动态生成的类中定义的任何方法时,Rails返回表并不存在 如果我用self.table_na
Object.const_set('Foo', Class.new(MyRemoteDB)) do
self.table_name = ENV['TABLE_NAME']
def self.go_wild
...
end
end
但当我尝试访问在动态生成的类中定义的任何方法时,Rails返回表并不存在
如果我用
self.table_name
记录表名,我会得到类名的常规复数版本(例如,对于类名Foo
,或者对于FooBar
),而不是用self.table_name
设置的值 这就是我定义动态类的方式。方法应该在lambda中定义,在对象.常量集(…)
调用中:
Object.const_set('Foo', Class.new(MyRemoteDB){
...
self.table_name = ENV['TABLE_NAME']
...
})