2

これは非常に単純に聞こえますが、答えが見つからないようです.datamapperでビューをモデルにどのようにマッピングしますか? ビューにない ID フィールドを削除すると、datamapper が文句を言います。そのままにしておくと、select を実行するたびに、テーブルではなくビューであるため、列 ID が存在しないと表示されます。

4

1 に答える 1

0

DataMapper 1.xは、ビューをネイティブでサポートしていません。モデルには、主キーとして機能するプロパティが少なくとも1つあることが必要です。

この主キーは通常、更新と遅延属性のロードを指定するために使用されます。

ビューに一意の値を持つ列がある場合は、: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 に答える