JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources
Included resource choosing wrong Arel table
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Ruby
- Estrellas
- 2.3k
- Forks
- 546
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
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?
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza en JSONAPI::Resource#preload_include_fragments e inspecciona cómo pluck_attrs selecciona su Arel::Table durante el include descrito de JobApplication/User. Reproduce el problema con la configuración de la asociación indicada en el informe y verifica que incluir user usa user_id 68 en lugar de Account ID 11 y ya no genera el error de clave no encontrada.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- rails, ruby
- Área
- api, backend
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100