Filter values for related resources are wrapped in nested arrays?
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
Direzione di ricerca
Inizia da lib/jsonapi/resource.rb intorno alla riga 753 e confronta la gestione dei valori dei filtri con il commit 3a691b2. Riproduci il caso di filtro personalizzato descritto nell’issue, verificando se Resource#verify_resource causa array annidati. Il lavoro è completato quando i valori dei filtri delle risorse correlate non vengono racchiusi inutilmente e il parsing delle stringhe continua a funzionare; nell’issue non è indicato alcun file di test.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I'm a little confused as to what's going on, but upgrading from 0.8.3 to 0.9 broke some filters I have in place. e.g.:
VERIFY_RADIUS_FILTER = ->(value, context) {
return NoLimit.new unless context[:current_location].present?
value
}
FILTER_RADIUS_FROM_LOCATION = ->(records, value, options) {
location = options.dig(:context, :current_location)
limit = Array(value).first
return records unless location.present? && limit.present?
records.near(location, Float(limit))
}
filter :radius, default: 100.0,
verify: VERIFY_RADIUS_FILTER,
apply: FILTER_RADIUS_FROM_LOCATION
I think this commit my be the culprit? https://github.com/cerebris/jsonapi-resources/commit/3a691b29adb3e7aff0743ef59e44556bedb260c9
From what I can tell, this results in Resource#verify_resource being called twice. For a custom filter, at least (which is what I've got), that means the raw value gets doubly-nested in an array: https://github.com/cerebris/jsonapi-resources/blob/19f4d7b59f92b05fa28c4f925391cf5998123308/lib/jsonapi/resource.rb#L753
Instead I wonder if that line should be something like:
filter_values += raw.is_a?(String) ? CSV.parse_line(raw) : Array(raw)
To make sure we don't wrap an array?
/cc @hidde-jan
- Lingua principale
- Ruby
- Stelle
- 2.3k
- Fork
- 546
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JSONAPI-Resources/jsonapi-resources
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
ArgumentError with Rails 8.1 Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 50/100
JSONAPI-Resources/jsonapi-resources#1488 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
JSONAPI-Resources/jsonapi-resources#1479 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
JSONAPI-Resources/jsonapi-resources#1477 · 3 commenti · 1 reazione ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
Tutte le issue di JSONAPI-Resources/jsonapi-resources
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Please Drop ruby 3.2 support Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
googleapis/google-api-ruby-client#28001 · 5 reazioni ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100