web-dev-qa-db-fra.com

ne peut pas utiliser ^ xxx en dehors des clauses de correspondance

Cette fonction:

defp entries(query, page_number, page_size) do
  offset = page_size * (page_number - 1)

  query
  |> limit([_], ^page_size) # error
  |> offset([_], ^offset)
  |> Repo.all
end

donne une exception:

cannot use ^pg_size outside of match clauses

Pourquoi est-ce et comment y remédier?

21
Ramano

C'est généralement le signe que vous n'avez pas importé les macros appropriées à partir de Ecto.Query.

53
michalmuskala

Essaye ça:

query
|> limit(page_size)
|> offset(offset)
|> Repo.all
0
NoDisplayName

Vous devez utiliser ^ (opérateur pin - https://hexdocs.pm/elixir/Kernel.SpecialForms.html )

 requête 
 |> limite (^ page_size) 
 |> offset (^ v_offset) # Je ne sais pas si offset var écrase la fonction offset d'Ecto 
 | > Repo.all 
0
Gilvan Souza