JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources
Relationships on Create for non ActiveRecord models
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Ruby
- Sterne
- 2.3k
- Forks
- 546
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I guess more of a question.
I have this legacy app we are trying to slowly migrate to use jsonapi-resources. We have some bloated models we are splitting into smaller resources but also some models that point to Redis-backed models.
class RedisResource < JSONAPI::Resource
attribute :attr_1
attribute :attr_2
# Override required. The underlying model is not based on
# ActiveRecord.
def self.find_by_key(key, options = {})
context = options[:context]
model = RedisModel.find(key)
raise(JSONAPI::Exceptions::RecordNotFound, key) if model.nil?
new(model, context)
end
end
The problem though, is that somehow the relationship data is getting lost before reaching the Resource methods like: #replace_field(field_data).
All that info is available when I use an ActiveRecord model that uses the #belongs_to helper. But unsure what do I need to do/implement in my models to get the relationship assignment working.
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 mit RedisResource#find_by_key und verfolge, wie Beziehungsdaten für Ressourcen, die nicht auf ActiveRecord basieren, #replace_field(field_data) erreichen. Vergleiche diesen Pfad mit einer ActiveRecord-Ressource, die belongs_to verwendet; abgeschlossen ist die Aufgabe, wenn die Beziehungszuweisung des Issues für das Redis-gestützte Modell funktioniert und das relevante Verhalten durch Tests verifiziert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- redis, 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
- 25/100