JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources
Add a hook for retrieving ActiveRecord fragments for included relationships
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Ruby
- Sterne
- 2.3k
- Forks
- 546
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
For example, if you have a resource UserResource with a method like this
def friends
@model.friends.size
end
It will load user.friends separately for each model in the list. So you can optimise the query like this:
class self.records
_model_class.all.includes(:friends)
end
Then when requesting GET /users/ it now works well. However, say if you request something like GET /groups/?include=users, the records method on UserResource is never called, so there is no query optimisation.
Instead of overriding self.apply_includes(records, options = {}) on each resource that has a relationship to UserResource, it would be nice to have a way to do this only once per resource.
@lgebhardt as discussed on Gitter
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit nachzuverfolgen, wie GET /groups/?include=users zu UserResource gelangt, und vergleiche die im Issue beschriebenen records- und apply_includes-Pfade. Die Arbeit ist abgeschlossen, wenn ein Hook auf Ressourcenebene enthaltene Beziehungen optimieren kann, ohne apply_includes für jede verwandte Ressource überschreiben zu müssen und ohne separate Abfragen für jedes Modell zu verwenden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rails, ruby
- Bereich
- api, backend, database
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100