Elixir 当我需要验证时,如何防止错误显示在视图中?

Elixir 当我需要验证时,如何防止错误显示在视图中?,elixir,phoenix-framework,ecto,Elixir,Phoenix Framework,Ecto,我的new.eex中有此代码: <%= if Enum.any?(@changeset.errors) do %> <%= rendering_code_is_here %> <% end %> 因此,在我的控制器中,我有: def new(conn, _params) do changeset = Content.changeset(%Content{}) render conn, "new.html", changeset: ch

我的
new.eex中有此代码:

<%= if Enum.any?(@changeset.errors) do %>
  <%= rendering_code_is_here %>
<% end %>
因此,在我的控制器中,我有:

  def new(conn, _params) do
    changeset = Content.changeset(%Content{})
    render conn, "new.html", changeset: changeset
  end

因此,它将始终无效(
title
为零)。如何解决此问题?

正如您所说,您的变更集将始终存在错误,因此每次都会运行
呈现代码

您需要检查的是,在使用字段对变更集执行
操作
(例如
Repo.insert
Repo.update
)后是否存在任何错误



如果您接受
nil
值,为什么需要
验证([:title])
?为什么不从变更集中删除验证?我不接受nil值,但我希望从用户那里收到非nil值。我无法预测用户将在标题中键入什么,这就是为什么我将此字段留空的原因
  def new(conn, _params) do
    changeset = Content.changeset(%Content{})
    render conn, "new.html", changeset: changeset
  end
<%= if @changeset.action do %>
  <%= rendering_code_is_here %>
<% end %>