最后,我发现,到目前为止,最佳解决办法是使用dm-is-reflective
plugin: https://github.com/godfat/dm-is-reflective。
它没有产生反映现有数据库图谱的数据Mapper模型代码,但只要你继续使用这一图象,其财产获取方法就自动获得。
这里是使用的一个例子:
require data_mapper
require dm-is-reflective
DataMapper.setup(:default, "postgres://user:pwd@localhost/db")
class Table
include DataMapper::Resource
is :reflective #activate dm-is-reflective
reflect #reflects eeach property. You can be more specific (look at plugin documentation)
end
DataMapper.finalize
#Even if no field is defined, all of them are accessible
entry = Table.first(nil, {:id => 469})
print entry.anotherField