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 %>