mirror of
https://github.com/ash-project/ash.git
synced 2024-09-20 13:33:20 +12:00
fix: limit 1 on to one side load queries
This commit is contained in:
parent
67fe025622
commit
f8604717bd
2 changed files with 11 additions and 2 deletions
|
@ -49,6 +49,13 @@ defmodule Ash.Actions.SideLoad do
|
||||||
end
|
end
|
||||||
|> maybe_select(relationship.destination_field)
|
|> maybe_select(relationship.destination_field)
|
||||||
|
|
||||||
|
related_query =
|
||||||
|
if relationship.cardinality == :one do
|
||||||
|
Ash.Query.limit(related_query, 1)
|
||||||
|
else
|
||||||
|
related_query
|
||||||
|
end
|
||||||
|
|
||||||
new_path = [relationship | path]
|
new_path = [relationship | path]
|
||||||
|
|
||||||
{related_query, further_requests} =
|
{related_query, further_requests} =
|
||||||
|
@ -134,7 +141,9 @@ defmodule Ash.Actions.SideLoad do
|
||||||
|
|
||||||
defp attach_to_one_side_loads(value, last_relationship, data, lead_path) do
|
defp attach_to_one_side_loads(value, last_relationship, data, lead_path) do
|
||||||
values =
|
values =
|
||||||
Enum.into(value, %{}, fn item ->
|
value
|
||||||
|
|> Enum.reverse()
|
||||||
|
|> Enum.into(%{}, fn item ->
|
||||||
{Map.get(item, last_relationship.destination_field), item}
|
{Map.get(item, last_relationship.destination_field), item}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ defmodule Ash.Test.Actions.SideLoadTest do
|
||||||
|
|
||||||
has_one :latest_post, Ash.Test.Actions.SideLoadTest.Post,
|
has_one :latest_post, Ash.Test.Actions.SideLoadTest.Post,
|
||||||
destination_field: :author_id,
|
destination_field: :author_id,
|
||||||
sort: :inserted_at
|
sort: [inserted_at: :desc]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue