JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources
Fields filtering with include
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Ruby
- Sterne
- 2.3k
- Forks
- 546
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Version 0.9.12
When using fields[events]=name + include=establishment the key relationships disappear from the response hash.
Basic association is events belongs_to establishment
Issue is coming from here:
# JSONAPI::ResourceSerializer#supplying_relationship_fields
def supplying_relationship_fields(resource_klass)
@_supplying_relationship_fields.fetch resource_klass do
relationships = Set.new(resource_klass._relationships.keys.map(&:to_sym))
cur = resource_klass
while cur != JSONAPI::Resource
if @fields.has_key?(cur._type)
# here...
# It always empty the Set
#relationships &= @fields[cur._type]
break
end
cur = cur.superclass
end
@_supplying_relationship_fields[resource_klass] = relationships
end
end
Commenting relationships &= @fields[cur._type] solves this issue. @DavidMikeSimon could you describe your mind here? I know it was a loooong time ago but your help might help to correctly fix this issue.
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 in lib/jsonapi/resource_serializer.rb bei JSONAPI::ResourceSerializer#supplying_relationship_fields und reproduziere den im Issue beschriebenen Fall fields[events]=name plus include=establishment. Überprüfe, dass der Response-Hash den Schlüssel relationships beibehält und weiterhin die Feldfilterung anwendet; das beabsichtigte Verhalten sollte bestätigt werden, bevor die Mengenüberschneidung geändert wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rails, ruby
- Bereich
- api, backend
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100