我在ruby应用程序中使用datamapper,我遇到了一个我不明白的问题。
我有一个公寓模型和位置模型。公寓位于指定位置,多个公寓可位于同一位置。这通常描述了1-n关系(我猜:-))
我的费用是在Appartement sql表中我需要一个location_id,但我不想在Location表中有任何Appartment指针。对我来说,位置应该独立存在,不应该参考公寓。
在Appartement ruby课程中,我添加了:
has n, Location
但它会在Location ruby类中创建一个appartment_id,这是我不想要的。
你有什么线索吗?
非常感谢, LUC
答案 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