JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

has_one foreign_key_on: :related fails on save

Ouverte
#670 4 commentaires 4 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

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

Description

When saving a resource with a has_one relationship with foreign_key_on: :related I get an error of undefined method 'foreign_key=' for the model. I'm not sure if the intent is to change the relationship on the related items when save or not. For now I did the following patch to not update any relationships that have foreign_key_on: :related

def replace_to_one_link(relationship_type, relationship_key_value)
  if(self.class._relationships[relationship_type.to_sym]).belongs_to?
    super
  end
end

def replace_polymorphic_to_one_link(relationship_type, relationship_key_value, relationship_key_type)
  if(self.class._relationships[relationship_type.to_sym]).belongs_to?
    super
  end
end

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 par reproduire l’échec de l’enregistrement d’une relation has_one utilisant foreign_key_on: :related, puis suivez le chemin d’enregistrement de la relation via replace_to_one_link et replace_polymorphic_to_one_link. Déterminez le comportement attendu pour les relations avec des related items et ajoutez ou mettez à jour la couverture du cas en échec ; le travail est terminé lorsque l’enregistrement n’appelle plus une méthode foreign_key= indisponible et que le comportement attendu de la relation est vérifié.

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é
À clarifier
Accessibilité débutants
28/100

Recevez les nouvelles issues par e-mail

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