Phoenix Framework - 索引应在 state == "new" 处显示消息

Phoenix Framework - Index should show message where state == "new"

我希望在 def 索引中仅显示状态为 "new" 的消息。

这是我必须显示所有消息的工作代码:

def index(conn, _params) do
  messages = Repo.all(Message)
  render(conn, "index.json", messages: messages)
end

我正在尝试过滤消息以仅显示状态为 "new" 的消息。这是我尝试失败的代码:

def index(conn, _params) do
  messages = Repo.all(Message
  |> where([message], message.state == "sent"))
  render(conn, "index.json", messages: messages)
end

您应该使用 Ecto.Query 来满足您的查询需求:

import Ecto.Query
query = from m in Message, where: m.state == "sent", select: m
Repo.all(query)

查看文档:Ecto.Query