这听起来很简单但是我似乎找不到答案,你如何将视图映射到datamapper中的模型?如果我删除了我的视图没有的ID字段,datamapper会抱怨,如果我把它留在那里,那么每当我执行一个select时它说我的列id不存在,因为它是一个视图而不是一个表。
答案 0 :(得分:0)
DataMapper 1.x没有对视图的本机支持。它希望模型至少有一个属性作为主键。
此主键通常用于指定更新和延迟属性加载。
当您的视图确实包含具有唯一值的列时,只需在属于此列的属性选项中指定:key => true
。
无需指定名称为:id
的属性。
如果没有具有唯一值的列,请使用复合主键(CPK)。一组列,形成唯一的值组合:
class ModelFromView
include DataMapper::Resource
property :key_like_property_a, String, :key => true
property :key_like_property_b, Integer, :key => true
property :other_property, Integer
...
end