Ich habe folgende Modelle:Rails GROUP_BY mit leeren Ergebnissen
class Task
belongs_to :task_category
end
class TaskCategory
has_many :tasks
end
Ich möchte Gruppenaufgaben durch Aufgabe Kategorie und das funktioniert für mich:
Task.all.group_by(&:task_category)
# =>
{
#<TaskCategory id: 1, name: "call", ... } =>[#<Task id: 1, ...>, #<Task id: 2, ...>],
#<TaskCategory id: 2, name: "event", ... } =>[#<Task id: 3, ...>, #<Task id: 4, ...>]
}
Das Problem ist, ich alle Aufgabenkategorien wollen zurück auch wenn die Aufgabensammlung leer ist. Daher wäre so etwas wie dies funktioniert:
#<TaskCategory id: 3, name: "todo", ... } =>[]
In diesem Fall hat die Aufgabe Kategorie keine Aufgaben, so dass der Wert ist ein leeres Array. Unterstützt die group_by eine Option, um dies zuzulassen? Wenn nicht, kann dies elegant in einem One-Liner erfolgen?
Ja, Sie haben Recht, und die Verwendung von Includes ermöglicht es mir, über die Sammlung zu iterieren, ohne weitere Abfragen zu starten. – Donato
@Donato ist einfach eager_loading – 7urkm3n