我使用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
当发送错误的验证码时,表单会被原始模型属性重新渲染(更改会被覆盖)。在这些情况下,如何保留表单中的更改?
答案 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