JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources
Issue with Updating the foreign key of a polymorphic relationship
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
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.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par replace_polymorphic_to_one_link et les définitions de relations de Photo, Order, Api::V1::PhotoResource et Api::V1::OrderResource présentées dans l’issue. Reproduisez la création ou la mise à jour d’un Order via les relations après avoir téléversé un Photo, puis vérifiez que le lien polymorphe est géré sur la ressource correcte sans le contournement de OrderResource.
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