datamapper辅助密钥

时间:2010-01-13 13:50:36

标签: ruby datamapper

我在ruby应用程序中使用datamapper,我遇到了一个我不明白的问题。

我有一个公寓模型和位置模型。公寓位于指定位置,多个公寓可位于同一位置。这通常描述了1-n关系(我猜:-))

我的费用是在Appartement sql表中我需要一个location_id,但我不想在Location表中有任何Appartment指针。对我来说,位置应该独立存在,不应该参考公寓。

在Appartement ruby​​课程中,我添加了:

has n, Location

但它会在Location ruby​​类中创建一个appartment_id,这是我不想要的。

你有什么线索吗?

非常感谢, LUC

2 个答案:

答案 0 :(得分:1)

这是一对多关系,但对于位置模型,不适用于公寓。 这意味着Location可以有很多公寓,这就是你想要的,所以Appartment模型将有location_id。你所做的就是你告诉datamapper你的公寓有很多地方,所以它将appartment_id添加到了位置。

要修复它,您可以添加:

has n, Appartment
在位置课程中

我根本不知道datamapper,但在Rails中你可以在两个模型中定义它。在Appartment中您可以定义如下内容:

belongs_to Location

并在位置添加类似我的第一个示例。

答案 1 :(得分:1)

我只想说

class Apartment
  belongs_to :location
end

class Location
  has n, :apartments
end

这将允许您引用@ apartment.location和@ location.apartments