当我有 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 %>
我的 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 %>