Skip to content

Commit 114960f

Browse files
author
Leo B
committed
Simplify chain_through
1 parent cc18294 commit 114960f

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

lib/ecto/association.ex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Ecto.Query, only: [from: 1, from: 2, join: 4, join: 5, distinct: 3, where: 3]
2+
23
defmodule Ecto.Association.NotLoaded do
34
@moduledoc """
45
Struct returned by associations when they are not loaded.
@@ -248,24 +249,23 @@ defmodule Ecto.Association do
248249

249250
values = List.wrap(values)
250251

251-
query = case {join_to, dest_out_key, values} do
252-
{nil, single_key, [single_value]} when is_atom(single_key) ->
253-
query
254-
|> where([{dest, final_bind}], field(dest, ^single_key) == ^single_value)
252+
query = case {join_to, List.wrap(dest_out_key), values} do
255253
{nil, [single_key], [single_value]} ->
256254
query
257255
|> where([{dest, final_bind}], field(dest, ^single_key) == ^single_value)
258256

259257
{nil, [single_key], values} ->
260258
query
261259
|> where([{dest, final_bind}], field(dest, ^single_key) in ^values)
260+
262261
{nil, dest_out_keys, [single_value]} ->
263262
dest_out_keys
264263
|> Enum.zip(single_value)
265264
|> Enum.reduce(query, fn {dest_out_key_field, value}, query ->
266265
query
267266
|> where([{dest, final_bind}], field(dest, ^dest_out_key_field) == ^value)
268267
end)
268+
269269
{nil, dest_out_keys, values} ->
270270
query
271271
|> where_keys(final_bind, dest_out_keys, values)

0 commit comments

Comments
 (0)