JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources
Dealing with strong parameters with nested hash in JR
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Ruby
- Sterne
- 2.3k
- Forks
- 546
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Not sure how to deal with this strong parameters issue in a JSONAPI::ResourceController.
I have a simple User model with settings field that is stored in Postgres as a jsonb field type. The resource looks like this:
class API::V1::UserResource < JSONAPI::Resource
key_type :uuid
attributes :username, :email, :first_name, :last_name, :roles
attribute :settings
def roles
@model.roles.to_a
end
end
This serializes out just fine, but trying to PATCH with something like the body below:
{
"data": {
"id": "776c526a-6b5f-4839-998e-591d3043645d",
"type": "users",
"attributes": {
"settings": {
"color": "blue"
}
}
}
}
If config.raise_if_parameters_not_allowed = false then I get this stored in the database:
"--- !ruby/object:ActionController::Parameters\nparameters: !ruby/hash:ActiveSupport::HashWithIndifferentAccess\n color: blue\npermitted: false\n"
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 der Strong-Parameter-Verarbeitung von JSONAPI::ResourceController und stelle die PATCH-Anfrage für das jsonb-Einstellungsfeld der Ressource User nach. Der Fix ist abgeschlossen, wenn verschachtelte Einstellungen als JSON-Daten statt als serialisiertes ActionController::Parameters-Objekt gespeichert werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- postgresql, rails, ruby
- Bereich
- api, backend, database
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100