JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

Included resource choosing wrong Arel table

Ouverte
#1,127 6 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Ruby
Étoiles
2.3k
Forks
546
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I'm running into an issue where including one resource (user) ends up using another Arel table (account), and thus the include blows up with Internal Server Error: key not found: 11. 11 is the Account ID of the user, but the user ID is 68, which is specified on the parent resource as user_id.

I've stepped through the code a bit to determine that pluck_attrs in JSONAPI::Resource#preload_include_fragments has the wrong Arel::Table but I'm not sure what the cause of that is.

My models and resources are configured in a very straightforward manner:

JobApplication < ApplicationRecord
  belongs_to :user, inverse_of: :job_applications, touch: true, counter_cache: true
end

User < ApplicationRecord
  has_many :job_applications, inverse_of: :user, dependent: :destroy
end

Any idea why this would be happening?

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez dans JSONAPI::Resource#preload_include_fragments et examinez comment pluck_attrs sélectionne son Arel::Table pendant l’include JobApplication/User décrit. Reproduisez le problème avec la configuration de l’association indiquée dans le rapport, puis vérifiez que l’inclusion de user utilise user_id 68 plutôt que Account ID 11 et ne déclenche plus l’erreur indiquant que la clé est introuvable.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
rails, ruby
Domaine
api, backend
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.