当我有 validate_required 时,如何防止在视图中显示错误?

How to prevent errors from being shown in the view when I have validate_required?

我的 new.eex:

中有此代码
<%= if Enum.any?(@changeset.errors) do %>
  <%= rendering_code_is_here %>
<% end %>

问题 if 永远是真的,因为我的变更集有代码:

def changeset(struct, params) do
  struct
  |> cast(bla-bla)
  |> bla-bla-bla
  |> validate_required([:title])
end

因此,在我的控制器中我有:

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

因此,它将始终无效(title 为 nil)。我该如何解决这个问题?

如您所说,您的变更集总是有错误,因此 rendering_code_is_here 每次都会 运行。

您需要检查的是在使用 action 字段。

<%= if @changeset.action do %>
  <%= rendering_code_is_here %>
<% end %>