0

我正在为“如何为关系建模”的第一步而苦苦挣扎?我关注了几个模型,

class CarMake  
end  

class Region  
end  

Class CarModel  
end  

关系是“汽车制造商”有许多模型属于零个或多个区域。例如,假设本田在北美和亚洲拥有“思域”车型。本田也仅在欧洲拥有“ CivicMini”。模拟这些关系的最佳方法是什么?是不是每个 CarModel 通过 Region 都属于 CarMaker?

也很少有其他模型使用这种关系,

顾客

class Customer  
  has_many :cars   
end  

这辆车引用了所有属性,如 CarMake、CarModel、Region,但是如何(我需要另一个类来存储这些属性并在“Car”中引用它吗?)

class Car  
  belongs_to :customer  
end  
4

2 回答 2

0

这对你有用吗?

class Maker
   has_many :models
end

class Model
   has_many :regions
   belongs_to :maker
end

class Region
  belongs_to :model
end

class Car
  has_one :model
  belongs_to :customer
end

class Customer
  has_many :cars
end

因此,在这种情况下,客户可能拥有多辆相同或不同型号的汽车,并且该型号可以有许多不同的地区并属于一个制造商。

这对您的用例有用吗?

于 2013-11-07T20:24:50.887 回答
0

在 Car 类中定义一个多态接口

belongs_to :car_type(interface name change according to you), polymorphic: true

在 CarMaker 类中

has_many :cars, as: :car_type

在 CarModel 类中

has_many :cars, as: :car_type

在区域类

has_many :cars, as: :car_type

并且每当您在汽车表中存储记录时......存储将是(CarMaker,CarModel,Region)和id的对象类型

于 2013-11-07T20:28:28.587 回答