fix: ensure we only take unique related records when lazy loading

This commit is contained in:
Zach Daniel 2022-07-20 01:12:53 -04:00
parent 1c7babd2b4
commit 75ca760c9f

View file

@ -512,8 +512,11 @@ defmodule Ash.Actions.Load do
defp lazy_load_or(data, lazy?, relationship, api, related_query, request_opts, func) do
if lazy? && Ash.Resource.Info.loaded?(data, relationship) do
pkey = Ash.Resource.Info.primary_key(related_query.resource)
data
|> get_related(relationship)
|> Enum.uniq_by(&Map.take(&1, pkey))
|> api.load(related_query,
lazy?: true,
authorize?: request_opts[:authorize?],