如何在更新失败后保持表单更改

时间:2016-08-28 16:36:09

标签: ruby-on-rails forms model-view-controller captcha

我使用Simple-Captcha有一个非常标准的Ruby-on-Rails表单。以下更新方法仅在正确键入验证码的情况下更新属性:

@place = Place.find(params[:id])
if simple_captcha_valid?
  @place.update_attributes(params)
else
  flash.now[:danger] = 'Captcha not valid!'
  render :edit
end

当发送错误的验证码时,表单会被原始模型属性重新渲染(更改会被覆盖)。在这些情况下,如何保留表单中的更改?

1 个答案:

答案 0 :(得分:0)

您希望使用要保留的任何参数重新初始化@place对象。像这样:

if simple_captcha_valid? @place.update_attributes(params) else @place.assign_attributes(params) flash.now[:danger] = 'Captcha not valid!' render :edit end