JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources
Does Resource class always assume @model is reloadable?
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Ruby
- Sterne
- 2.3k
- Forks
- 546
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
In Resource#save:
def _save(validation_context = nil)
unless @model.valid?(validation_context)
fail JSONAPI::Exceptions::ValidationErrors.new(self)
end
if defined? @model.save
saved = @model.save(validate: false)
unless saved
if @model.errors.present?
fail JSONAPI::Exceptions::ValidationErrors.new(self)
else
fail JSONAPI::Exceptions::SaveFailed.new
end
end
else
saved = true
end
@model.reload if @reload_needed
@reload_needed = false
@save_needed = !saved
:completed
end
We check to see if the save action exists but we don't check if the reload action exists.
Why is that? What other types of classes besides ActiveRecord::Base was this intended to work on? Or was this code only intended to work against ActiveRecord?
This is important to know as I'm refactoring for #1006 .
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 bei Resource#save, insbesondere bei den Aufrufen @model.save und @model.reload, und prüfe das in #1006 nachverfolgte Refactoring zusammen mit der Annahme von ActiveRecord::Base. Ermittle, welche Modellschnittstelle unterstützt werden soll; abgeschlossen ist die Aufgabe, wenn das Verhalten geklärt ist und das Refactoring einen expliziten, verifizierten Vertrag hat.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rails, ruby
- Bereich
- api, backend
- Issue-Typ
- Refactoring
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 20/100