Gegeben ein System, das Benutzern erlaubt, andere Benutzer zu Ereignissen einzuladen:
%Vor% Ich erstelle einen einfachen Bericht, der alle Einladungen zu einer Veranstaltung anzeigt. Ich versuche, den Bericht so zu ändern, dass er auch einige Aktionen enthält, die für invited
für das Beispielereignis durchgeführt werden können:
Das funktioniert gut, hat aber ein N + 1-Problem. Wenn Sie versuchen, die benutzerdefinierte Zuordnung zu laden, erhalten Sie:
ABSCHÄTZUNGSHINWEIS: Der Assoziationsbereich 'eingeladen' ist instanzabhängig (der Bereichsbaustein benötigt ein Argument). Das Vorladen findet statt, bevor die einzelnen Instanzen erstellt werden. Dies bedeutet, dass keine Instanz an den Assoziationsbereich übergeben wird. Dies führt höchstwahrscheinlich zu fehlerhaftem oder falschem Verhalten. Joining, Preloading und das eifrige Laden dieser Verknüpfungen ist veraltet und wird in Zukunft entfernt.
Gibt es eine Möglichkeit, so eifrig zu laden? Ist es möglich, dem has_many
andere Hinweise zu geben, anstatt eine Instanzvariable zu verwenden?
Siehe Rails 5 how to Formularzuordnung zwischen Tabellen für mehrere gemeinsame Attribute .
Sie müssen möglicherweise zwei verschiedene Zuordnungen definieren. Eine Instanz spezifisch und die andere für Joins.
Tags und Links ruby ruby-on-rails