我在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
为零)。我该如何解决这个问题?
答案 0 :(得分:2)
正如您所说,您的变更集始终会出错,因此rendering_code_is_here
每次都会运行。
您需要检查的是,使用action
字段对变更集执行action
(例如Repo.insert
或Repo.update
)后是否有任何错误
<%= if @changeset.action do %>
<%= rendering_code_is_here %>
<% end %>