Ash FrameworkAF
Ash Framework3w ago
7 replies
Joan Gavelán

How to correctly filter a resource by a relationship field using AshJsonApi?

I am trying to filter "place_images" by place.slug

curl -X GET "http://localhost:4000/api/place-images?filter[place.slug]=minima-reiciendis-unde-et-magni-delectus-odio-ut-VBTeL7n652a" \  
  -H "Accept: application/vnd.api+json" \
  -H "Content-Type: application/vnd.api+json"


But getting the following error:

[info] GET /api/place-images
[debug] Processing with CulturalismoWeb.AshJsonApiRouter
  Parameters: %{"filter" => %{"place.slug" => "minima-reiciendis-unde-et-magni-delectus-odio-ut-VBTeL7n652a"}}
  Pipelines: [:api]
[warning] `f90dcab1-4d20-46e0-978f-01ac3e9cb7f1`: AshJsonApi.Error not implemented for error:

** (Ash.Error.Query.NoSuchField) No such field place.slug for resource Culturalismo.Places.PlaceImage
    (ash 3.5.33) lib/ash/error/query/no_such_field.ex:4: Ash.Error.Query.NoSuchField.exception/1
    (ash 3.5.33) lib/ash/filter/filter.ex:2985: Ash.Filter.add_expression_part/4
    (ash 3.5.33) lib/ash/filter/filter.ex:3022: anonymous fn/3 in Ash.Filter.add_expression_part/4
    (elixir 1.18.3) lib/enum.ex:4968: Enumerable.List.reduce/3
    (elixir 1.18.3) lib/enum.ex:2600: Enum.reduce_while/3
    (ash 3.5.33) lib/ash/filter/filter.ex:3021: Ash.Filter.add_expression_part/4
    (ash 3.5.33) lib/ash/filter/filter.ex:2551: anonymous fn/3 in Ash.Filter.parse_expression/2
    (elixir 1.18.3) lib/enum.ex:4968: Enumerable.List.reduce/3
    (elixir 1.18.3) lib/enum.ex:2600: Enum.reduce_while/3
    (ash 3.5.33) lib/ash/filter/filter.ex:337: Ash.Filter.parse/3
    (ash 3.5.33) lib/ash/query/query.ex:3943: Ash.Query.do_filter/3
    (ash_json_api 1.5.1) lib/ash_json_api/controllers/helpers.ex:83: anonymous fn/1 in AshJsonApi.Controllers.Helpers.fetch_records/1
    (ash_json_api 1.5.1) lib/ash_json_api/controllers/index.ex:26: AshJsonApi.Controllers.Index.call/2
    (culturalismo 0.1.0) deps/plug/lib/plug/router.ex:263: anonymous fn/4 in CulturalismoWeb.AshJsonApiRouter.dispatch/2...
Was this page helpful?