我在我的foo模型中运行了几个验证。以下是我处理创建和更新操作的方法:
if @foo.update_attributes(params[:foo])
#party time
else
@foo.reload #here is the issue
render :action => "new" #or edit
end
我必须重新加载属性,因为我使用默认的表单值来运行无关的javascript。问题是通过重新加载属性,我显然失去了@ foo.errors。有没有办法可以将它们传递给新的重载变量?我更喜欢使用javascript来防止糟糕的表单提交。谢谢!
答案 0 :(得分:1)
重载方法显然不适用于此。您可以: 1.定义恢复值的方法 2.保存错误然后重新分配 3.将属性从新加载的实例合并到@foo。
所有这些解决方案都非常苛刻,不推荐使用。如果我是你,我会重新考虑事情的运作方式。