Ich habe vier miteinander verbundene Modelle: Restaurants, Menüs, Abschnitte und Gerichte. Die Gerichte have_and_belong_to_many
Abschnitte und letztlich sind ganz unten in der Assoziationskette. In meiner App muss ich oft mehrmals auf das Restaurant des Gerichts verweisen.Mehrere HMT-Assoziationen gegenüber einer Top-Level-Assoziation
Ich weiß, um dies zu erreichen, würde ich eine Kaskade von HMT-Assoziationen erstellen müssen. Meine Frage ist, ist es ideal, eine belongs_to
Beziehung zwischen einem Restaurant und einem Gericht einzurichten, um die mehreren Abfragen zu vermeiden oder zu verlassen, wie es ist? Ab jetzt fühlt sich das nur dreckig an (vielleicht bin ich es nur).
class Restaurant < ApplicationRecord
has_many :menus, dependent: :destroy
has_many :dishes, through: :menus
end
class Menu < ApplicationRecord
has_many :sections, dependent: :destroy
has_many :dishes, through: :sections
belongs_to :restaurant
end
class Section < ApplicationRecord
belongs_to :menu
has_and_belongs_to_many :dishes
end
class Dish < ApplicationRecord
has_and_belongs_to_many :sections
end
Sie sind Punktcode auf das Schreiben, um sicherzustellen, dass ein das Restaurant ein Gericht in das gleiche Restaurant Menü seiner Bereich von gehört gehört hat mir meine HABTM-Verbände jetzt in Frage zu stellen. –
Ich hatte nicht bemerkt, dass Geschirr HABTM-Abschnitte. Das wird die Delegation, die ich beschrieben habe, zum Scheitern bringen, da sie eine eindeutige Sektion pro Gericht annimmt. – hoffm
In diesem Fall bin ich mit Denormalisierung fest? –