如何使用Datamapper将模型映射到数据库视图

时间:2012-07-06 04:05:52

标签: ruby-on-rails datamapper

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

1 个答案:

答案 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