Filter values for related resources are wrapped in nested arrays?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Empieza en lib/jsonapi/resource.rb alrededor de la línea 753 y compara el manejo de los valores de filtro con el commit 3a691b2. Reproduce el caso de filtro personalizado descrito en el issue y comprueba si Resource#verify_resource provoca arrays anidados. El trabajo está terminado cuando los valores de filtro de recursos relacionados no se envuelven innecesariamente y el análisis de cadenas sigue funcionando; en el issue no se menciona ningún archivo de pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Ruby
- Estrellas
- 2.3k
- Forks
- 546
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JSONAPI-Resources/jsonapi-resources
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
ArgumentError with Rails 8.1 Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 50/100
JSONAPI-Resources/jsonapi-resources#1488 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
JSONAPI-Resources/jsonapi-resources#1479 · 2 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
JSONAPI-Resources/jsonapi-resources#1477 · 3 comentarios · 1 reacción ·
-
Fields filtering with include Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
Todos los issues de JSONAPI-Resources/jsonapi-resources
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
riscv/riscv-unified-db#2626 ·
-
Component: GLib
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
ds-drift
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
we-promise/sure#3693 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
simp/pupmod-simp-simp#395 ·