不能在match子句之外使用^ xxx

时间:2016-08-09 06:58:09

标签: elixir phoenix-framework ecto

此功能:

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

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

给出了一个例外:

cannot use ^pg_size outside of match clauses

为什么这样以及如何解决?

4 个答案:

答案 0 :(得分:56)

这通常表示您尚未从Ecto.Query导入适当的宏。

答案 1 :(得分:0)

试试这个:

@comment

答案 2 :(得分:0)

您必须使用^(pin运算符-https://hexdocs.pm/elixir/Kernel.SpecialForms.html

query
|> limit(^page_size)
|> offset(^v_offset) # I don't know if offset var override offset function of Ecto
|> Repo.all

答案 3 :(得分:0)

此错误的另一个可能原因是单词拼写错误。在我的情况下,它是form而不是from