Ash FrameworkAF
Ash Framework7mo ago
2 replies
Ege

Accessing relationship fields inside Ash.query.filter

I have this:
defp user_query(context) do
  User
  |> Ash.Query.select([:first_name, :last_name])
  |> Ash.Query.load([dashboard_students: [:educator, :dashboard_student_groups]])
  |> maybe_filter_by_graduation_year(context)
  |> maybe_filter_by_dashboard_group(context)
end

defp maybe_filter_by_graduation_year(query, %{arguments: %{graduation_year: nil}}) do
  query
end

defp maybe_filter_by_graduation_year(query, %{arguments: %{graduation_year: graduation_year}}) do
  Ash.Query.filter(query, graduation_year == ^graduation_year or undergraduate_graduation_year == ^graduation_year)
end

defp maybe_filter_by_dashboard_group(query, %{arguments: %{dashboard_group_id: nil}}) do
  query
end

defp maybe_filter_by_dashboard_group(query, %{arguments: %{dashboard_group_id: dashboard_group_id}}) do
  Ash.Query.filter(query, dashboard_student_groups.id == ^dashboard_group_id)
end

The maybe_filter_by_graduation_year works, but maybe_filter_by_dashboard_group gives this error:
** (Ash.Error.Unknown) 
Bread Crumbs:
  > Error returned from: MyApp.Ash.Organizations.Organization.read

Unknown Error

* Invalid reference dashboard_student_groups.id
    at users, filter
Was this page helpful?