JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

Issue with Updating the foreign key of a polymorphic relationship

Abierto
#626 2 comentarios 4 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Type: Bug
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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.