UUIDResource has_many IdResource causes undefined method `[]` when doing GET [...]?includes=
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 42/100
Rechercherichtung
Beginnen Sie bei lib/jsonapi/processor.rb:587 und reproduzieren Sie den Fehler mit GET /uuids/3bbaf722-4583-4fa6-ac36-9190d4b93f80?include=ids unter Verwendung der UuidResource- und IdResource-Definitionen im Issue. Verfolgen Sie, wie die Schlüssel von resource_set erstellt und abgerufen werden, und überprüfen Sie anschließend, dass die Anfrage ohne den Fehler wegen der nicht definierten Methode [] abgeschlossen wird und die zugehörigen ids enthält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
This issue is a (choose one):
- Problem/bug report.
Description
I've tracked the issue to lib/jsonapi/processor.rb:587.
resource_set[resource_klass] is holding the associated resources in an array key'd by a string {"1" => [...]} and attempting to access it via an int resource.id.
With the following resources just issue this get request (make sure to have include=).
GET /uuids/3bbaf722-4583-4fa6-ac36-9190d4b93f80?include=ids
class UuidResource < JSONAPI::Resource
key_type :uuid
has_many :ids
end
class IdResource < JSONAPI::Resource
has_one :uuid
end
Throws error:
Internal Server Error: undefined method `[]' for nil:NilClass /var/lib/gems/2.3.0/bundler/gems/jsonapi-resources-d185ebb76cd2/lib/jsonapi/processor.rb:587:in `block (2 levels) in populate_resource_set'
/var/lib/gems/2.3.0/bundler/gems/jsonapi-resources-d185ebb76cd2/lib/jsonapi/processor.rb:586:in `each'
/var/lib/gems/2.3.0/bundler/gems/jsonapi-resources-d185ebb76cd2/lib/jsonapi/processor.rb:586:in `block in populate_resource_set'
/var/lib/gems/2.3.0/bundler/gems/jsonapi-resources-d185ebb76cd2/lib/jsonapi/processor.rb:542:in `each_key'
- Vorherrschende Sprache
- Ruby
- Sterne
- 2.3k
- Forks
- 547
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus JSONAPI-Resources/jsonapi-resources
-
Fix incorrect translation key for parameter_not_allowed.detailEvtl. vergeben @pozzer hat das vor 598 Tagen übernommen. Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
-
ArgumentError with Rails 8.1Evtl. vergeben @SAY-5 hat das vor 55 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 50/100
JSONAPI-Resources/jsonapi-resources#1488 · 1 Kommentar ·
-
Rails 8.1: jsonapi_resources DSL fails to generate relationship routes due to Resource#initialize signature changeEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 42/100
JSONAPI-Resources/jsonapi-resources#1479 · 2 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
JSONAPI-Resources/jsonapi-resources#1477 · 3 Kommentare · 1 Reaktion ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
Alle Issues in JSONAPI-Resources/jsonapi-resources
Ähnliche Issues
-
Windows: packaged_agent_ruby? never matches 'Puppet Labs\Puppet', so the openvox gem is not foundOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
-
Falha nos links do postOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
puppetlabs/puppetlabs-postgresql#1721 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
temporalio/sdk-ruby#625 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 94/100
zerocracy/judges-action#2803 ·
Maintainer antworten meist innerhalb von 5 Tagen