JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

Pagination, sorting and filtering of related resources no longer work properly

Offen
#1,117 1 Kommentar 4 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Ruby
Sterne
2.3k
Forks
546
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

After upgrading to 0.9.0, when records for a relationship is overridden in the resource, pagination, sorting and filtering no longer works. Example, we have a UserResource and it has a has_many :comments relationship and on the resource, we override the method like:

def records_for_comments(_options = {})
  # do some custom stuff here
end

After debugging, I can see that this is because from the older versions, in RelationshipBuilder, the logic where the records are sorted, filtered and paginated in the block:

define_on_resource relationship_name do |options = {}|
  # . . .
end

are moved to this block:

define_on_resource associated_records_method_name do |options = {}|
  # . . .
end

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne in RelationshipBuilder und vergleiche die Blöcke define_on_resource von relationship_name und associated_records_method_name. Verfolge records_for_comments für eine überschriebene relationship und überprüfe anschließend, dass Sortierung, Filterung und Paginierung weiterhin angewendet werden, wenn die benutzerdefinierte Methode verwendet wird. Der Issue erwähnt keine Testdatei. Identifiziere daher vor der Änderung die relevanten Tests für das Verhalten von relationship.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
ruby
Bereich
backend-api-design
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.