Ich erstelle einen benutzerdefinierten Formular-Generator.Komplexe Gruppierung von Schienen nach Assoziationen
A Formular has_many Sections.
A Abschnitt has_many Felder.
A Feld has_many User_Values .
Es gibt eine Spalte auf den User_Values Tabelle cloned_index genannt. Ich benutze dies, wenn ein Benutzer ein Duplikat eines Abschnitts erstellt, aber die Abschnitte müssen eindeutig sein.
Meine Frage:
Kann mir jemand helfen, eine Abfrage zu schreiben, dass für jeden Abschnitt, gruppieren Sie die Felder, die durch die cloned_index der Benutzerwerte des Feldes.
Ich habe Derzeit:
form.sections.each do |section| section.fields.each do|field|
field.user_values.group_by(&:cloned_index)
end
Dies funktioniert derzeit nicht und ist sehr schwer zu folgen. Ich bin mir sicher, dass es einen einfachen Weg gibt, dies zu tun, den ich gerade nicht sehe.
Es scheint, Für mich ist das Datenmodell das, was diese Komplikation verursacht. Sind Sie auf dieses Modell beschränkt? Ich würde empfehlen, eine Bridge-Tabelle zwischen field und user_values hinzuzufügen. Sie können auch "durch" Beziehungen nutzen. Ein Formular könnte 'has_many: fields, through:: section' zum Beispiel. Wenn Sie das Geschäftsproblem erklären, kann ich wahrscheinlich eine bessere Empfehlung geben. –