JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources
has_one foreign_key_on: :related fails on save
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Ruby
- Sterne
- 2.3k
- Forks
- 546
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, den Fehler beim Speichern für eine has_one-Beziehung mit foreign_key_on: :related zu reproduzieren, und verfolge dann den Pfad zum Speichern der Beziehung durch replace_to_one_link und replace_polymorphic_to_one_link. Ermittle das beabsichtigte Verhalten für Beziehungen zu related items und füge Abdeckung für den fehlschlagenden Fall hinzu oder aktualisiere sie; als erledigt gilt die Aufgabe, wenn das Speichern nicht mehr versucht, eine nicht verfügbare foreign_key=-Methode aufzurufen, und das beabsichtigte Verhalten der Beziehung verifiziert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rails, ruby
- Bereich
- api, backend
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 28/100