Ruby 数据映射器辅助密钥
我在一个ruby应用程序中使用datamapper,我遇到了一个我不理解的问题 我有一个公寓模型和一个位置模型。一个公寓位于给定位置,多个公寓可以位于同一位置。这通常描述了一个1-n关系(我猜:-) 我的感觉是,在ApartmentSQL表中,我需要一个location_id,但我不希望location表中有任何Apartment指针。对我来说,这个位置应该是独立的,不应该参考公寓 在Apparement ruby类中,我添加了:Ruby 数据映射器辅助密钥,ruby,datamapper,Ruby,Datamapper,我在一个ruby应用程序中使用datamapper,我遇到了一个我不理解的问题 我有一个公寓模型和一个位置模型。一个公寓位于给定位置,多个公寓可以位于同一位置。这通常描述了一个1-n关系(我猜:-) 我的感觉是,在ApartmentSQL表中,我需要一个location_id,但我不希望location表中有任何Apartment指针。对我来说,这个位置应该是独立的,不应该参考公寓 在Apparement ruby类中,我添加了: has n, Location 但是它随后在Location
has n, Location
但是它随后在Location ruby类中创建了一个appartment_id,这是我不想要的
你有什么线索吗
非常感谢,
Luc这是一对多的关系,但用于位置模型,而不是公寓。 这意味着位置可以有许多公寓,这是您想要的,所以公寓模型将有位置id。您所做的是告诉datamapper您的公寓有许多位置,所以它将公寓id添加到位置 要解决此问题,您可以添加:
has n, Appartment
在位置类中
我根本不知道datamapper,但在Rails中,您可以在两种模型中定义它。在公寓中,您定义如下:
belongs_to Location
在位置中,您添加了类似于我的第一个示例的内容。我只想说
class Apartment
belongs_to :location
end
class Location
has n, :apartments
end
这将允许您引用@partment.location和@location.partments谢谢,我一到家就会测试:-)使用符号比使用类更可取。这样就可以避免加载顺序问题