如果验证失败,我如何保留表单数据?

时间:2015-11-12 16:19:34

标签: ruby-on-rails validation

目前发生的事情是表单重置后表单输入丢失。因此,例如,如果某人未填写必填字段,则表单将重新加载,并且之前输入的所有数据都将消失。

如何防止这种情况发生?

我希望在页面重新加载时将所有已输入的数据保留在表单上。

我发现了这个question我认为这是我需要的,但我不太明白。

2 个答案:

答案 0 :(得分:0)

以下是create操作的典型结构:

@thing = Thing.new(thing_params)
if @thing.save
  redirect_to @thing
else
  render `new`
end

如果save成功,则会启动针对刚刚保存的记录show链接的新请求,该请求会调用show操作。另一方面,如果save失败,则对客户端的响应将是new视图的呈现,但不会调用另一个操作。当前create操作调用的数据用于呈现该视图。由于此时客户提交的表单数据仍包含在@thing中,因此表单将使用他们提交的任何数据进行呈现。

答案 1 :(得分:0)

另一个选项(大多数用户可能更喜欢)是在用户提交表单之前在客户端验证您的数据。

查看this RailsCast了解详情。