这听起来很简单,但是我似乎找不到答案,如何将视图映射到 datamapper 中的模型?如果我删除了我的视图没有的 ID 字段,datamapper 会抱怨,如果我把它留在那里,那么每次我执行一个选择时,它都会说我的列 ID 不存在,因为它是一个视图而不是一个表。
问问题
261 次
1 回答
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
于 2012-12-14T20:51:53.953 回答