Ruby 使用DataMapper的外键和关联
我已经彻底阅读了这一页: 如果答案就在那里,那就是没有用我能理解的方式表达出来 我对使用Datamapper建立关系感到非常困惑。上面的datamapper站点几乎是我在这个主题上所能找到的所有站点,正如我所说的,它并没有特别的帮助 例如,如果我想创建如下内容: 表:Ruby 使用DataMapper的外键和关联,ruby,datamapper,ruby-datamapper,Ruby,Datamapper,Ruby Datamapper,我已经彻底阅读了这一页: 如果答案就在那里,那就是没有用我能理解的方式表达出来 我对使用Datamapper建立关系感到非常困惑。上面的datamapper站点几乎是我在这个主题上所能找到的所有站点,正如我所说的,它并没有特别的帮助 例如,如果我想创建如下内容: 表:用户 id (primary key) name 表:属性 id (pk) title id (pk) user_id (fk to users.id) attribute_id (fk to attributes.id) v
用户
id (primary key)
name
表:属性
id (pk)
title
id (pk)
user_id (fk to users.id)
attribute_id (fk to attributes.id)
value
表:用户属性
id (pk)
title
id (pk)
user_id (fk to users.id)
attribute_id (fk to attributes.id)
value
这似乎很简单,但却非常困难。我尝试的每件事都会给我带来错误,比如没有名为user\u attributes的关系,或者UserUserAttribute中的user\u attribute(DataMapper::UnknownRelationshipError)
有人能告诉我这个简单映射的类定义吗?也许能告诉我一个更好的关于DataMapper关联的讨论?下面是我尝试过的一些方法
class User
include DataMapper::Resource
property :id, Serial, :key => true
property :name, String
has n, :user_attributes, :through=>:attribute
end
class Attribute
include DataMapper::Resource
property :id, Serial, :key => true
property :name, String
has n, :user_attributes, :through=>:user
end
class UserAttribute
include DataMapper::Resource
belongs_to :user
belongs_to :attribute
end
我想您会看到类似于
userattribute
的情况,因为DataMapper正在尝试自动生成匿名联接类
这里有一篇文章描述了如何
您可能会对示例进行如下更改:
- 用户->用户
- 项目->属性
- 协作->用户属性