JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources
Issue with Updating the foreign key of a polymorphic relationship
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
Hello,
we encountered this issue with an setup like:
class Photo < ActiveRecord::Base
belongs_to :imageable, polymorphic: true
...
end
class Order < ActiveRecord::Base
...
has_one :photo, as: :imageable
...
end
class Api::V1::PhotoResource < JSONAPI::Resource
...
has_one :imageable, polymorphic: true
...
end
class Api::V1::OrderResource < JSONAPI::Resource
...
has_one :photo, polymorphic: true
...
end
The idea is, that you can upload a photo separately to the photo endpoint and then link it to the order while creating/updating it via relationships.
Some debugging revealed that it's recognised as polymorphic but replace_polymorphic_to_one_link is always called on the OrderResource, even with has_one :photo, polymorphic: true, foreign_key_on: :related in the OrderResource.
I would like to fix this behaviour myself, when somebody can point me in the right direction. Until then a workaround for this is:
def replace_polymorphic_to_one_link(relationship_type, relationship_key_value, relationship_key_type)
@model.photo = Photo.find(relationship_key_value)
end
in the OrderResource.
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 con replace_polymorphic_to_one_link y las definiciones de relaciones de Photo, Order, Api::V1::PhotoResource y Api::V1::OrderResource mostradas en el issue. Reproduce la creación o actualización de un Order mediante relaciones después de subir un Photo y verifica que el enlace polimórfico se gestione en el recurso correcto sin la solución alternativa de OrderResource.
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