Frage

Ich kämpfe mit dem ersten Schritt auf "Wie kann ich die Beziehung modellieren"? Ich folgte ein paar Modelle,

class CarMake  
end  

class Region  
end  

Class CarModel  
end  

Die Beziehung ist 'Car Maker' hat viele Modelle, die zu null oder mehr Regionen gehören. Für z. B. sagen wir, dass Honda in Nordamerika und Asien ein "bürgerliches" Modell hat. Auch Honda hat "Civicmini" nur in Europa. Was wäre der beste Weg, um diese Beziehungen zu modellieren? Ist es so, als ob jedes Karmodel einem Autohersteller durch die Region gehört?

Es gibt auch nur wenige andere Modelle, die diese Beziehung verwenden.

Kunde

class Customer  
  has_many :cars   
end  

Dieses Auto bezieht sich auf alle Attribute wie Carmake, Carmodel, Region, aber wie (brauche ich eine andere Klasse, um diese Attribute zu speichern und sie hier in 'Car' zu verweisen?)

class Car  
  belongs_to :customer  
end  
War es hilfreich?

Lösung

In der Autoklasse definieren eine polymorphe Grenzfläche

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

In der Autobauerklasse

has_many :cars, as: :car_type

In Carmodel Class

has_many :cars, as: :car_type

In der Region

has_many :cars, as: :car_type

Und wann immer Sie Aufzeichnungen im Autotisch aufbewahren ... speichern Sie den Objekttyp, der (Autohersteller, Carmodel, Region) und ID sein würde

Andere Tipps

Würde das für dich funktionieren?

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

In diesem Fall könnte ein Kunde mehrere Autos haben, die die gleichen oder unterschiedlichen Modelle sind, und das Modell kann viele verschiedene Regionen haben und zu einem Hersteller gehört.

Funktioniert dies für Ihren Anwendungsfall?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top