Skip to content

Commit e321b2d

Browse files
committed
fix issue in query when pk is not named id
1 parent cf79daa commit e321b2d

1 file changed

Lines changed: 4 additions & 8 deletions

File tree

lib/nested_sets/query.ex

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,6 @@ defmodule NestedSets.Query do
199199
node_lft = Map.get(node, cfg.lft)
200200
node_rgt = Map.get(node, cfg.rgt)
201201
node_depth = Map.get(node, cfg.depth)
202-
pk = get_primary_key(node)
203202

204203
parent_query =
205204
from(n in queryable,
@@ -209,10 +208,13 @@ defmodule NestedSets.Query do
209208
limit: 1
210209
)
211210

211+
[pk_field | _] = schema.__schema__(:primary_key)
212+
pk = Map.get(node, pk_field)
213+
212214
parent_query = apply_tree_filter(parent_query, node, cfg)
213215

214216
from(n in queryable,
215-
where: n.id != ^pk,
217+
where: field(n, ^pk_field) != ^pk,
216218
where: field(n, ^cfg.depth) == ^node_depth,
217219
where: field(n, ^cfg.lft) > subquery(from(p in parent_query, select: field(p, ^cfg.lft))),
218220
where: field(n, ^cfg.rgt) < subquery(from(p in parent_query, select: field(p, ^cfg.rgt))),
@@ -322,10 +324,4 @@ defmodule NestedSets.Query do
322324
tree_value = Map.get(node, tree_attr)
323325
from(n in query, where: field(n, ^tree_attr) == ^tree_value)
324326
end
325-
326-
defp get_primary_key(node) do
327-
schema = node.__struct__
328-
[pk_field | _] = schema.__schema__(:primary_key)
329-
Map.get(node, pk_field)
330-
end
331327
end

0 commit comments

Comments
 (0)