2012-07-06 146 views
2

這聽起來很簡單,但我似乎找不到答案,您如何將視圖映射到datamapper中的模型?如果我刪除了我的視圖沒有的ID字段,datamapper會抱怨,如果我將它留在那裏,那麼每次執行選擇時都會說我的列ID不存在,因爲它是一個視圖而不是表格。如何使用Datamapper將模型映射到數據庫視圖

回答

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 
相關問題