2

这听起来很简单,但是我似乎找不到答案,如何将视图映射到 datamapper 中的模型?如果我删除了我的视图没有的 ID 字段,datamapper 会抱怨,如果我把它留在那里,那么每次我执行一个选择时,它都会说我的列 ID 不存在,因为它是一个视图而不是一个表。

4

1 回答 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 回答